Function at 0x4b0750
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
mov eax, dword [0x629688]
xor eax, esp
mov dword [esp + 0xf8], eax
push ebx
push esi
push edi
mov eax, edx
mov dword [esp + 0x1c], eax
mov edx, ecx
mov dword [esp + 0x54], edx
lea eax, [eax + eax*8]
lea eax, [eax + 0x5c]
lea esi, [edx + eax*8]
lea ecx, [edx + 0x148]
mov eax, dword [esi + 0x38]
mov dword [esp + 0x50], eax
movzx eax, byte [esi + 0x24]
mov edi, dword [edx]
mov dword [esp + 0x64], ecx
mov ecx, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x70], ecx
lea ecx, [eax + eax*4]
mov eax, dword [edx + 4]
add eax, 8
shl ecx, 4
add eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x30]
mov edx, dword [edx + 0x44]
mov dword [esp + 0x38], eax
xor eax, eax
mov dword [esp + 0x44], edi
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x40], esi
test edx, edx
jle 0x4b07f8
mov ecx, dword [esp + 0x54]
add ecx, 0x48
jmp 0x4b07e0
mov edi, dword [esp + 0x38]
cmp dword [ecx], edi
mov edi, dword [esp + 0x44]
je 0x4b0986
inc eax
add ecx, 4
cmp eax, edx
jl 0x4b07e0
xorps xmm0, xmm0
movlpd qword [esp + 0x78], xmm0
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
not ecx
and ecx, dword [ebp + 8]
not edx
and edx, dword [ebp + 0xc]
mov dword [esi + 0x40], ecx
mov ecx, dword [esp + 0x54]
mov dword [esi + 0x44], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [esp + 0x1c]
call fcn.005a7590
and eax, 1
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x50]
test byte [eax + 0x24], 0x40
je 0x4b084f
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], 1
test byte [eax + 0x22], 0x20
je 0x4b0857
mov dword [esp + 0xc], 0
mov ecx, ebx
call fcn.0046a7d0
mov ecx, ebx
mov dword [esp + 0x14], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
call fcn.0046a7d0
cmp byte [esi + 0x24], 0
mov dword [esp + 0x88], eax
mov dword [esi + 0x18], eax
jbe 0x4b08e8
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x24], 8
je 0x4b08e8
mov eax, dword [edi + 0x48]
inc eax
mov dword [edi + 0x48], eax
mov dword [esi], eax
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x24], ecx
cmp dword [eax + 0x54], ecx
jg 0x4b08b4
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b08e8
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x60]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x28]
mov dword [esp + 0x78], eax
test al, 4
je 0x4b09e8
mov eax, dword [edx + 0x1c]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x18]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], ecx
cmp dword [eax + 0x54], ecx
jg 0x4b0927
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b095b
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov word [eax + ecx*4], 0x14
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], edx
cmp dword [eax + 0x54], edx
jg 0x4b09a4
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
je 0x4b09a0
mov edx, 1
mov dword [esi + 0x2c], edx
mov byte [esi + 0x25], 0x10
jmp 0x4b1c10
xor ecx, ecx
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
jmp 0x4b0809
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edi, dword [esp + 0x1c]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x14]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x44]
mov word [eax + ecx*4], 0x16
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [esi + 0x2c], edx
mov byte [esi + 0x25], 0x10
jmp 0x4b1c10
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x24]
test edx, 0x400
je 0x4b0c6a
movzx edx, word [ecx + 0x28]
inc dword [edi + 0x64]
lea eax, [edx + 2]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [edi + 0x38]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x10], eax
jg 0x4b0a35
mov eax, dword [esp + 0x2c]
add eax, 2
add eax, edx
mov dword [edi + 0x3c], eax
mov eax, dword [edi + 0x38]
sub eax, dword [esp + 0x10]
mov dword [edi + 0x38], eax
jmp 0x4b0a4b
mov eax, dword [edi + 0x48]
lea ebx, [eax + 1]
mov dword [esp + 0x2c], ebx
lea ebx, [edx + 2]
add eax, ebx
mov ebx, dword [esp + 0x5c]
mov dword [edi + 0x48], eax
mov eax, dword [esi + 0xc]
xor esi, esi
mov dword [esp + 0x1c], eax
test edx, edx
jle 0x4b0aaf
mov ebx, dword [esp + 0x40]
lea esp, [esp]
mov eax, dword [ecx + 0x2c]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x4b0aa4
mov eax, dword [esp + 0x2c]
add eax, 2
add eax, esi
test byte [edx + 0x12], 1
mov ecx, edi
push eax
je 0x4b0a93
push dword [esp + 0x40]
push esi
push ebx
call fcn.004afaa0
mov eax, dword [ebx + 0x10]
add esp, 0x10
mov dword [esp + 0x1c], eax
jmp 0x4b0aa0
mov edx, dword [edx]
mov edx, dword [edx + 0x10]
call fcn.0047f9b0
add esp, 4
mov ecx, dword [esp + 0x50]
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4b0a60
mov ebx, dword [esp + 0x5c]
mov eax, dword [ecx + 0x18]
mov esi, dword [ebx + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x54], esi
jg 0x4b0acc
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b0b02
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0xc]
lea ecx, [esi + esi*4]
mov esi, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4b0b06
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], ecx
cmp dword [eax + 0x54], ecx
jg 0x4b0b24
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b0b54
mov ecx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], eax
lea eax, [esi + 1]
mov word [ecx], 0x19
mov byte [ecx + 3], 0
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov esi, dword [esp + 0x50]
mov edx, dword [ebx + 0x20]
cmp byte [esi + 0x1c], 0
mov eax, 0xfffffffe
mov ecx, 0xfffffff5
cmovne eax, ecx
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x60], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0xc], edx
cmp dword [eax + 0x54], edx
jg 0x4b0b99
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
je 0x4b0b95
mov edx, 1
jmp 0x4b0bd1
mov edx, dword [esp + 0xc]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edi, dword [esp + 0x38]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 8], edi
mov edi, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [esp + 0x44]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [esp + 0x24]
mov ecx, ebx
push dword [esp + 0x64]
call fcn.0046abc0
mov byte [esi + 0x1c], 0
xor esi, esi
add esp, 8
cmp dword [esp + 0x14], esi
jle 0x4b0c26
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x50]
cmp esi, 0x10
jge 0x4b0c1e
mov ax, word [ebx + 0x1e]
mov cx, si
shr ax, cl
test al, 1
je 0x4b0c17
mov edx, dword [ebx + 0x2c]
mov ecx, edi
mov edx, dword [edx + esi*4]
call fcn.004af990
inc esi
cmp esi, dword [esp + 0x14]
jl 0x4b0bf7
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x2c]
push dword [esp + 0x10]
mov byte [ecx + 0x25], 0x97
mov dword [ecx + 0x28], eax
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x2c], eax
mov edx, esi
mov ecx, edi
call fcn.0047e1e0
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, dword [edi + 0x38]
jle 0x4b0c5e
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], esi
mov ecx, edi
call fcn.0047e240
jmp 0x4b1c10
mov eax, edx
and eax, 0x100
je 0x4b0d11
test dl, 5
je 0x4b0d11
mov eax, dword [ecx + 0x2c]
mov ecx, edi
mov edx, dword [eax]
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
push eax
push dword [esp + 0x40]
mov dword [esp + 0x14], eax
push 0
push esi
call fcn.004afaa0
mov edx, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x20], eax
cmp eax, edx
je 0x4b0cb8
mov ecx, edi
call fcn.00480bc0
mov eax, dword [esp + 0x20]
mov esi, dword [esi + 0x10]
push esi
push eax
mov edx, 0x26
mov ecx, ebx
call fcn.0046a540
push dword [esp + 0x28]
mov edx, 0x43
push esi
push dword [esp + 0x48]
mov ecx, ebx
call fcn.0046a420
mov esi, dword [esp + 0x34]
add esp, 0x14
mov edx, esi
push 1
mov ecx, edi
call fcn.0047e1e0
mov edx, dword [esp + 0x3c]
add esp, 4
mov ecx, edi
push esi
push 0xffffffffffffffff
call fcn.0047e090
mov eax, dword [esp + 0x48]
add esp, 8
mov byte [eax + 0x25], 0x9c
jmp 0x4b1c10
test eax, eax
je 0x4b0efc
test dl, 2
je 0x4b0efc
xor eax, eax
mov dword [esp + 0x18], 0x9c
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], eax
test dl, 0x20
je 0x4b0d5a
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x1c], 1
mov eax, dword [eax]
mov dword [esp + 0x28], eax
test dl, 0x10
je 0x4b0d6f
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x1c]
mov ecx, dword [eax + ecx*4]
mov dword [esp + 0x34], ecx
jmp 0x4b0d71
xor ecx, ecx
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4b0d8b
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x28], ecx
jmp 0x4b0d8f
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4b0dfa
mov esi, dword [ecx]
lea eax, [esp + 0xc]
mov edx, dword [esi + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x14], 0x3d3b3c3e
call fcn.0047f820
add esp, 4
mov edi, eax
movzx eax, byte [esi]
push edi
push dword [esp + 0x18]
movzx edx, byte [esp + eax - 0x38]
push dword [esp + 0x40]
mov ecx, ebx
call fcn.0046a420
mov edx, edi
mov edi, dword [esp + 0x50]
add esp, 0xc
mov ecx, edi
push 1
call fcn.0047e1e0
mov edx, dword [esp + 0x10]
add esp, 4
mov ecx, edi
call fcn.00480bc0
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.004af990
jmp 0x4b0e1b
push dword [esp + 0x14]
mov ecx, 0x66
push dword [esp + 0x3c]
test eax, eax
mov edx, 0x69
cmovne edx, ecx
mov ecx, ebx
call fcn.0046a540
add esp, 8
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b0e80
mov esi, dword [eax]
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
mov edx, dword [esi + 0x10]
push eax
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.0047f9b0
mov al, byte [esi]
add esp, 4
cmp al, 0x52
je 0x4b0e5b
cmp al, 0x50
je 0x4b0e5b
mov ecx, dword [esp + 0x3c]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x50]
jmp 0x4b0e6d
mov ecx, dword [esp + 0x3c]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x51]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.004af990
cmp dword [esp + 0x3c], 0
mov ecx, dword [ebx + 0x20]
sete al
add al, 8
cmp dword [esp + 0x18], 0x9c
mov byte [esi + 0x25], al
mov eax, dword [esp + 0x38]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
je 0x4b1c10
inc dword [edi + 0x48]
mov esi, dword [edi + 0x48]
push esi
push eax
mov edx, 0x64
mov ecx, ebx
call fcn.0046a540
mov edx, dword [esp + 0x40]
push esi
push 0xffffffffffffffff
mov ecx, edi
call fcn.0047e090
mov edx, dword [esp + 0x28]
push esi
push dword [esp + 0x28]
mov ecx, ebx
push dword [esp + 0x3c]
call fcn.0046a420
mov ecx, dword [ebx + 4]
add esp, 0x1c
test ecx, ecx
je 0x4b1c10
mov eax, dword [ebx + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x6b
jmp 0x4b1c10
test edx, 0x200
je 0x4b1484
movzx eax, word [ecx + 0x18]
mov edi, dword [esi + 8]
mov dword [esp + 0x4c], edi
mov edi, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x1c]
test byte [edi + 0x22], 1
mov edi, dword [esp + 0x44]
mov dword [esp + 0x34], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
mov byte [esp + 0x33], 0
mov byte [esp + 0x2c], 0
mov byte [esp + 0x5b], 0
mov dword [esp + 0x14], eax
je 0x4b0f7c
mov esi, dword [esp + 0x54]
cmp byte [esi + 0x24], 0
mov esi, dword [esp + 0x40]
jle 0x4b0f7c
mov edi, dword [esp + 0x10]
cmp word [eax + 0x32], di
mov edi, dword [esp + 0x44]
jbe 0x4b0f7c
mov byte [esp + 0x2c], 1
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x10]
movzx eax, ax
mov dword [esp + 0x48], eax
mov dword [esp + 0x18], eax
test dl, 0x20
je 0x4b0fae
mov ebx, dword [esp + 0x18]
mov eax, dword [ecx + 0x2c]
inc dword [esp + 0x18]
mov eax, dword [eax + ebx*4]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], 1
test dl, 0x10
je 0x4b1010
cmp dword [esp + 0x34], 0
mov eax, dword [ecx + 0x2c]
mov ecx, dword [esp + 0x18]
mov edx, 1
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x28], eax
jne 0x4b1014
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
mov eax, dword [eax + 4]
movsx eax, word [eax + ecx*2]
test eax, eax
js 0x4b1014
mov ebx, dword [esp + 0x2c]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x14]
movzx ebx, bl
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2c], ebx
mov eax, dword [eax + 4]
mov ebx, edx
cmp byte [eax + ecx*8 + 0x14], 0
mov eax, dword [esp + 0x2c]
cmove eax, ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x2c], eax
jmp 0x4b1014
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x68]
push eax
push edx
push dword [esp + 0x44]
mov edx, esi
mov ecx, edi
call fcn.004afd00
mov edx, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
add esp, 0xc
test eax, eax
je 0x4b1041
mov al, byte [edx + eax]
mov byte [esp + 0x33], al
mov eax, dword [esi + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
movzx ecx, word [eax + 0x32]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cmp cx, word [esp + 0x1c]
jae 0x4b117d
mov eax, dword [eax + 0x1c]
xor ecx, ecx
cmp byte [edx + eax], cl
mov eax, dword [esp + 0x3c]
sete cl
cmp eax, ecx
je 0x4b1186
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4b108d
cmp word [esp + 0x1c], cx
je 0x4b118a
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b10a3
test byte [eax + 0x12], 0x28
mov dword [esp + 0x24], 0
je 0x4b10ab
mov dword [esp + 0x24], 1
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x40]
je 0x4b10cc
mov esi, dword [esp + 0x28]
mov dword [esp + 0x1c], 0
test byte [esi + 0x12], 0x28
mov esi, dword [esp + 0x40]
je 0x4b10d4
mov dword [esp + 0x1c], 1
test eax, eax
jne 0x4b10e1
mov dword [esp + 0x60], eax
test cx, cx
je 0x4b10e9
mov dword [esp + 0x60], 1
mov ecx, edx
mov dword [esp + 0x10], ecx
test eax, eax
je 0x4b11b0
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
add ecx, edx
mov dword [esp + 0x6c], ecx
push ecx
mov edx, eax
mov ecx, edi
mov dword [esp + 0x78], eax
call fcn.0047f9b0
mov ecx, dword [esp + 0x78]
add esp, 4
call fcn.0047ccd0
test eax, eax
je 0x4b113b
push dword [esp + 0x20]
mov edx, 0x4c
push dword [esp + 0x70]
mov ecx, ebx
call fcn.0046a540
add esp, 8
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4b11df
add eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x6c], eax
mov dl, byte [eax]
call fcn.0047b340
cmp al, 0x62
mov eax, dword [esp + 0x6c]
jne 0x4b1165
mov byte [eax], 0x62
mov dl, byte [eax]
mov ecx, dword [esp + 0x74]
call fcn.0047cd00
test eax, eax
je 0x4b11df
mov eax, dword [esp + 0x6c]
mov byte [eax], 0x62
jmp 0x4b11df
mov eax, dword [esp + 0x3c]
jmp 0x4b107e
mov ecx, dword [esp + 0x10]
mov bl, byte [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
mov byte [esp + 0x5b], bl
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], eax
mov byte [esp + 0x2c], 0
jmp 0x4b1091
cmp byte [esp + 0x2c], 0
je 0x4b11e8
mov eax, dword [esp + 0x18]
add eax, edx
push eax
push 0
mov edx, 0x1c
mov ecx, ebx
call fcn.0046a540
add esp, 8
mov dword [esp + 0x24], 0
mov dword [esp + 0x60], 1
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x2c]
push dword [esp + 0x68]
movzx eax, dl
mov edx, dword [esp + 0x1c]
sub ecx, eax
push ecx
mov ecx, edi
call fcn.004af9e0
push dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x6c]
push dword [esp + 0x24]
lea eax, [ecx + eax*2]
mov ecx, dword [esp + 0x4c]
push dword [esp + 0x30]
movzx edx, byte [ecx + eax*2 + 0x5dff8c]
push dword [esp + 0x60]
mov ecx, ebx
call fcn.0046a720
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
je 0x4b12cd
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x1c]
mov ecx, edi
mov edx, eax
mov dword [esp + 0x28], eax
call fcn.0047e1e0
mov edx, dword [esp + 0x14]
add esp, 4
mov ecx, edi
push dword [esp + 0x24]
call fcn.0047f9b0
mov ecx, dword [esp + 0x14]
add esp, 4
call fcn.0047ccd0
test eax, eax
je 0x4b1297
push dword [esp + 0x20]
mov edx, 0x4c
push dword [esp + 0x28]
mov ecx, ebx
call fcn.0046a540
add esp, 8
mov dl, byte [esp + 0x33]
mov ecx, dword [esp + 0x10]
call fcn.0047b340
cmp al, 0x62
je 0x4b12f6
mov dl, byte [esp + 0x33]
mov ecx, dword [esp + 0x10]
call fcn.0047cd00
test eax, eax
jne 0x4b12f6
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x33]
push eax
push 1
mov ecx, edi
call fcn.004af9e0
jmp 0x4b12f3
cmp byte [esp + 0x5b], 0
je 0x4b12fa
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x18]
mov edx, 0x1c
push eax
push 0
mov ecx, ebx
call fcn.0046a540
mov dword [esp + 0x24], 0
add esp, 8
inc dword [esp + 0x48]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
call fcn.0044d450
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4b133c
mov ecx, dword [esp + 0x1c]
push eax
push dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
push dword [esp + 0x28]
movzx edx, byte [ecx + eax*2 + str.qonp]
push dword [esp + 0x58]
mov ecx, ebx
call fcn.0046a720
add esp, 0x10
mov edx, dword [esp + 0x34]
mov ecx, esi
call fcn.004af990
mov edx, dword [esp + 0x28]
mov ecx, esi
call fcn.004af990
cmp dword [esp + 0xc], 0
jne 0x4b1446
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x2c], 0x20
jne 0x4b13ac
inc dword [edi + 0x48]
mov esi, dword [edi + 0x48]
push esi
push dword [esp + 0x50]
mov edx, 0x6d
mov ecx, ebx
call fcn.0046a540
mov edx, dword [esp + 0x40]
push esi
push 0xffffffffffffffff
mov ecx, edi
call fcn.0047e090
push esi
push dword [esp + 0x4c]
mov edx, 0x3f
mov ecx, ebx
call fcn.0046a540
mov esi, dword [esp + 0x58]
add esp, 0x18
jmp 0x4b1446
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x38], edx
je 0x4b144a
call fcn.00485220
movzx edx, word [eax + 0x32]
mov ecx, edi
mov dword [esp + 0x1c], eax
call fcn.00480c00
mov ecx, eax
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0xc], ecx
cmp dx, word [eax + 0x32]
jae 0x4b1426
xor edi, edi
mov esi, eax
lea eax, [edi + ecx]
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esi + 4]
mov dx, word [eax + edi*2]
call fcn.00485240
cwde
push eax
push dword [esp + 0x54]
mov edx, 0x2e
mov ecx, ebx
call fcn.0046a420
movzx eax, word [esi + 0x32]
mov ecx, dword [esp + 0x18]
inc edi
add esp, 0xc
cmp edi, eax
jl 0x4b13e4
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x1c]
movzx eax, word [eax + 0x32]
push eax
push ecx
push dword [esp + 0x90]
mov edx, 0x41
push dword [esp + 0x44]
mov ecx, ebx
call fcn.0046a720
add esp, 0x10
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
test dword [ecx + 0x24], 0x1000
je 0x4b145d
mov byte [esi + 0x25], 0x9c
jmp 0x4b146a
cmp dword [esp + 0x3c], 0
sete al
add al, 8
mov byte [esi + 0x25], al
mov dword [esi + 0x28], edx
mov al, byte [ecx + 0x26]
and al, 1
mov byte [esi + 0x26], al
test byte [ecx + 0x24], 0xf
jne 0x4b1c10
jmp 0x4b1c0c
test edx, 0x2000
je 0x4b1bd1
mov eax, dword [edi + 0x44]
inc dword [edi + 0x48]
mov dword [esp + 0x2c], eax
inc eax
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x48]
mov ecx, ebx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x68], 0
call fcn.0046a7d0
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x50]
mov ecx, dword [ecx + 0x10]
mov eax, dword [eax + 0x2c]
xor edx, edx
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [eax + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
mov dword [esi + 0x28], eax
mov eax, dword [esp + 0x54]
mov byte [esi + 0x25], 0x12
mov al, byte [eax + 0x29]
mov dword [esp + 0x74], 0
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ecx
cmp al, 1
jbe 0x4b15f8
mov ecx, dword [esp + 0x70]
movzx eax, al
sub eax, dword [esp + 0x1c]
dec eax
mov dword [esp + 0xc], eax
lea edx, [eax + eax*4]
shl edx, 4
add edx, 0x58
call fcn.0044d680
mov ecx, eax
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x4b1552
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf8]
xor ecx, esp
call fcn.00586d1b
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov al, dl
inc al
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [esp + 0x54]
lea edi, [ecx + 8]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 4]
add ecx, 8
mov dword [esp + 0x24], ecx
cmp edx, 1
jl 0x4b15c2
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x40]
add ebx, 0x58
add eax, 0x6c
mov dword [esp + 0xc], eax
movzx eax, byte [eax]
mov edi, ebx
lea esi, [eax + eax*4]
mov eax, dword [esp + 0xc]
shl esi, 4
add esi, ecx
mov ecx, 0x14
add eax, 0x48
add ebx, 0x50
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc], eax
dec edx
jne 0x4b1595
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
test byte [edx + 0x22], 8
jne 0x4b1641
test byte [ecx + 0x2c], 0x20
jne 0x4b1605
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
push eax
push 0
mov edx, 0x1c
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0046a540
add esp, 8
jmp 0x4b1637
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
jmp 0x4b15ca
call fcn.00485220
mov esi, eax
mov eax, dword [edi + 0x44]
mov edx, 0x37
lea ecx, [eax + 1]
mov dword [edi + 0x44], ecx
movzx ecx, word [esi + 0x32]
push ecx
push eax
mov ecx, ebx
mov dword [esp + 0x1c], eax
call fcn.0046a540
add esp, 8
mov edx, esi
mov ecx, edi
call fcn.0046ac90
inc dword [edi + 0x48]
mov eax, dword [edi + 0x48]
mov dword [esp + 0x68], eax
push dword [esp + 0x60]
mov edx, 0x19
push 0
mov ecx, ebx
call fcn.0046a540
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x6c]
add esp, 8
mov edx, dword [eax + 0xc]
cmp edx, 1
jle 0x4b177e
xor ecx, ecx
mov dword [esp + 0xc], ecx
test edx, edx
jle 0x4b177e
xor esi, esi
xor ebx, ebx
mov edi, eax
mov eax, dword [edi + 0x14]
add eax, esi
mov edx, dword [eax]
cmp eax, dword [esp + 0x3c]
je 0x4b16cb
test byte [edx + 4], 1
jne 0x4b16cb
test byte [eax + 0x14], 0x12
jne 0x4b16cb
mov edi, 0xfff
test word [eax + 0x12], di
mov edi, dword [esp + 0x64]
je 0x4b16cb
mov ecx, dword [esp + 0x70]
push 0
push 0
call fcn.0047bf20
mov ecx, dword [esp + 0x78]
push eax
mov edx, ebx
call fcn.0047ba50
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov ebx, eax
inc ecx
add esi, 0x30
mov dword [esp + 0xc], ecx
cmp ecx, dword [edi + 0xc]
jl 0x4b1681
mov edi, dword [esp + 0x44]
mov dword [esp + 0x28], ebx
test ebx, ebx
mov ebx, dword [esp + 0x5c]
je 0x4b1782
mov ecx, dword [edi]
mov edx, 0x30
call fcn.0044d680
mov esi, eax
test esi, esi
je 0x4b171c
push 0x30
push 0
push esi
call fcn.005877c0
add esp, 0xc
or eax, 0xffffffff
mov byte [esi], 0x48
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
mov eax, dword [edi]
mov dword [esp + 0xc], eax
test esi, esi
jne 0x4b1744
xor edx, edx
mov ecx, eax
call fcn.0047bde0
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
call fcn.0047bde0
mov edx, esi
mov dword [esp + 0x28], edx
jmp 0x4b1786
mov edx, dword [esp + 0x28]
mov dword [esi + 0x10], edx
mov eax, dword [edx + 4]
and eax, 0x100
or dword [esi + 4], eax
mov ecx, esi
call fcn.0047b610
mov eax, dword [edi]
mov eax, dword [eax + 0x64]
cmp dword [esi + 0x18], eax
jle 0x4b1776
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.0044fa00
add esp, 0xc
mov edx, esi
mov dword [esp + 0x28], edx
jmp 0x4b1786
xor edx, edx
jmp 0x4b1786
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x50]
xor esi, esi
mov dword [esp + 0x20], esi
cmp dword [ecx + 0xc], esi
jle 0x4b1ad8
lea esp, [esp]
lea eax, [esi + esi*2]
shl eax, 4
add eax, dword [ecx + 0x14]
mov ecx, dword [esp + 0x38]
cmp dword [eax + 8], ecx
je 0x4b17c1
mov ecx, 0x200
test word [eax + 0x12], cx
je 0x4b1ac0
mov eax, dword [eax]
xor ecx, ecx
mov dword [esp + 0x6c], ecx
test edx, edx
je 0x4b17d8
test byte [eax + 4], 1
jne 0x4b17d8
mov dword [edx + 0xc], eax
mov eax, edx
push dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
push 0xf0
push 0
push 0
push eax
mov ecx, edi
call fcn.004b4e70
mov edx, eax
add esp, 0x14
mov dword [esp + 0x84], edx
test edx, edx
je 0x4b1ac0
mov eax, dword [esp + 0x40]
push 0
movzx ecx, byte [eax + 0x24]
push ecx
push dword [esp + 0x24]
lea ecx, [edx + 0x2e0]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, edi
call fcn.004b04f0
mov eax, dword [esp + 0x64]
add esp, 0x10
test byte [eax + 0x22], 8
jne 0x4b19ea
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 0xc]
dec eax
cmp dword [esp + 0x20], eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], esi
test byte [eax + 0x2c], 0x20
jne 0x4b188e
push 0
push dword [esp + 0x6c]
mov edx, eax
push dword [esp + 0x40]
mov ecx, edi
push 0xffffffffffffffff
call fcn.0047e480
push esi
push eax
push 0
push dword [esp + 0x30]
mov edx, 0x7f
mov ecx, ebx
call fcn.0046a720
add esp, 0x20
mov dword [esp + 0x6c], eax
jmp 0x4b19ea
mov ecx, eax
call fcn.00485220
movzx edx, word [eax + 0x32]
mov ecx, edi
mov dword [esp + 0x8c], eax
mov dword [esp + 0x24], edx
call fcn.00480c00
xor esi, esi
mov dword [esp + 0x10], eax
test edx, edx
jle 0x4b18f0
mov ebx, dword [esp + 0x8c]
lea esp, [esp]
mov edx, dword [esp + 0x34]
add eax, esi
push 0
push eax
mov eax, dword [ebx + 4]
push dword [esp + 0x40]
movsx eax, word [eax + esi*2]
push eax
mov ecx, edi
call fcn.0047e480
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x20]
inc esi
add esp, 0x10
cmp esi, edx
jl 0x4b18c0
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4b1915
push edx
push eax
push 0
push dword [esp + 0x20]
mov edx, 0x42
mov ecx, ebx
call fcn.0046a720
add esp, 0x10
mov dword [esp + 0x6c], eax
test esi, esi
js 0x4b19c8
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4b1931
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b1965
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x10]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x24]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 0x30
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4b197b
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b19af
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x14]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 0x6b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0xc], 0
je 0x4b19c8
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x4b19c8
mov eax, dword [ebx + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 0x10
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
push esi
mov ecx, edi
call fcn.0047e1e0
add esp, 4
cmp esi, dword [edi + 0x38]
jle 0x4b19ea
mov eax, dword [esp + 0x10]
mov dword [edi + 0x38], esi
mov dword [edi + 0x3c], eax
mov eax, dword [ebx + 0x18]
mov esi, dword [ebx + 0x20]
cmp dword [eax + 0x54], esi
jg 0x4b1a00
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b1a34
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x60]
lea ecx, [esi + esi*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x48]
mov word [eax + ecx*4], 0x11
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4b1a57
mov edx, dword [ebx + 0x20]
cmp edx, eax
jbe 0x4b1a4d
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x58], ecx
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x74]
cmp byte [edx + 0x27], 0
mov esi, dword [esp + 0x20]
mov ecx, 1
cmovne eax, ecx
mov ecx, dword [edx + 0x318]
mov dword [esp + 0x74], eax
test dword [ecx + 0x24], 0x200
je 0x4b1ab1
test esi, esi
je 0x4b1a92
mov eax, dword [esp + 0x4c]
cmp dword [ecx + 0x1c], eax
jne 0x4b1ab1
mov eax, dword [esp + 0x34]
test byte [eax + 0x2c], 0x20
je 0x4b1aa8
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x4b1ab1
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x4c], eax
jmp 0x4b1ab9
mov dword [esp + 0x4c], 0
mov ecx, edx
call fcn.004b57c0
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x28]
inc esi
mov dword [esp + 0x20], esi
mov ecx, eax
cmp esi, dword [eax + 0xc]
jl 0x4b17a0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x40]
mov dword [esi + 0x30], eax
test eax, eax
je 0x4b1aee
mov eax, dword [esp + 0x2c]
mov dword [esi + 8], eax
mov edx, dword [esp + 0x28]
test edx, edx
je 0x4b1b06
mov ecx, dword [esp + 0x70]
mov dword [edx + 0xc], 0
call fcn.0047bde0
mov edx, dword [ebx + 0x20]
mov eax, dword [esp + 0x78]
cmp edx, eax
jbe 0x4b1b1b
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [ebx + 0x20]
mov dword [esp + 0x84], eax
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x78], ecx
cmp dword [eax + 0x54], ecx
jg 0x4b1b43
mov ecx, ebx
call fcn.0046a3a0
test eax, eax
jne 0x4b1b7a
mov ecx, dword [esp + 0x78]
mov eax, dword [ebx + 4]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x84]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [ebx + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0x48]
mov dword [esp + 0x78], eax
js 0x4b1b9f
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4b1b9f
mov edi, dword [esp + 0x78]
mov eax, dword [ebx + 0x20]
mov dword [ecx + edi*4], eax
mov edi, dword [esp + 0x44]
mov eax, dword [ebx + 0x20]
dec eax
mov dword [edx + 0x58], eax
mov eax, dword [esp + 0x54]
cmp byte [eax + 0x29], 1
jbe 0x4b1bbd
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x70]
call fcn.0044d450
cmp dword [esp + 0x74], 0
jne 0x4b1c10
mov edx, dword [esp + 0x3c]
mov ecx, esi
call fcn.004af990
jmp 0x4b1c10
test byte [esp + 0x78], 8
je 0x4b1bde
mov byte [esi + 0x25], 0x9c
jmp 0x4b1c10
mov ecx, dword [esp + 0x3c]
push dword [esp + 0x14]
mov al, byte [ecx + 0x5dd684]
mov byte [esi + 0x25], al
mov eax, dword [esp + 0x3c]
mov dword [esi + 0x28], eax
movzx edx, byte [ecx + 0x5dce2c]
push eax
mov ecx, ebx
call fcn.0046a540
add esp, 8
inc eax
mov dword [esi + 0x2c], eax
mov byte [esi + 0x27], 1
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0xc]
mov esi, dword [ecx + 0x14]
mov dword [esp + 0xc], edx
test edx, edx
jle 0x4b1c84
mov ebx, dword [esp + 0x40]
test byte [esi + 0x14], 6
jne 0x4b1c70
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [ebx + 0x40]
and eax, dword [ebx + 0x44]
or ecx, eax
je 0x4b1c46
mov eax, dword [esp + 0x54]
mov byte [eax + 0x27], 1
jmp 0x4b1c70
cmp dword [ebx], 0
mov eax, dword [esi]
je 0x4b1c53
test byte [eax + 4], 1
je 0x4b1c70
push 8
push dword [esp + 0x8c]
mov edx, eax
mov ecx, edi
call fcn.00480130
mov edx, dword [esp + 0x14]
add esp, 8
or byte [esi + 0x14], 4
dec edx
add esi, 0x30
mov dword [esp + 0xc], edx
test edx, edx
jg 0x4b1c26
mov ebx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0xc]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
test edx, edx
jle 0x4b1de3
mov ebx, dword [esp + 0x44]
mov ecx, 0x402
test byte [eax + 0x14], 6
jne 0x4b1dcb
cmp word [eax + 0x12], cx
jne 0x4b1dcb
mov esi, dword [esp + 0x38]
cmp dword [eax + 8], esi
jne 0x4b1dcb
mov ecx, dword [esp + 0x40]
cmp dword [ecx], 0
jne 0x4b1dc6
mov ecx, dword [eax]
mov edx, dword [esp + 0x64]
xor edi, edi
push edi
push 3
push dword [eax + 0xc]
mov dword [esp + 0x84], ecx
push esi
lea ecx, [esp + 0xa0]
call fcn.004ad580
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4b1d34
lea esp, [esp]
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
and eax, dword [ebp + 0xc]
mov ecx, edx
and ecx, dword [ebp + 8]
or ecx, eax
jne 0x4b1d22
or edx, dword [esi + 0x24]
jne 0x4b1d1d
test byte [esi + 0x12], 2
jne 0x4b1d36
test edi, edi
cmove edi, esi
lea ecx, [esp + 0x90]
call fcn.004ad2e0
mov esi, eax
test esi, esi
jne 0x4b1d00
mov esi, edi
test esi, esi
je 0x4b1dbe
test byte [esi + 0x14], 4
jne 0x4b1dbe
mov ecx, dword [esp + 0x70]
mov edx, 0x30
call fcn.0044d680
mov edi, eax
test edi, edi
je 0x4b1dbe
mov ecx, dword [esi]
mov eax, dword [esp + 0x78]
movq xmm0, qword [ecx]
movq qword [edi], xmm0
movq xmm0, qword [ecx + 8]
movq qword [edi + 8], xmm0
movq xmm0, qword [ecx + 0x10]
movq qword [edi + 0x10], xmm0
movq xmm0, qword [ecx + 0x18]
movq qword [edi + 0x18], xmm0
movq xmm0, qword [ecx + 0x20]
movq qword [edi + 0x20], xmm0
movq xmm0, qword [ecx + 0x28]
movq qword [edi + 0x28], xmm0
mov eax, dword [eax + 0xc]
push 8
push dword [esp + 0x8c]
mov edx, edi
mov ecx, ebx
mov dword [edi + 0xc], eax
call fcn.00480130
mov ecx, dword [esp + 0x78]
add esp, 8
mov edx, edi
call fcn.0044d450
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov ecx, 0x402
dec edx
add eax, 0x30
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
test edx, edx
jg 0x4b1ca3
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x40]
mov eax, dword [edi]
mov dword [esp + 0x8c], eax
test eax, eax
je 0x4b1f1a
mov eax, dword [ebx + 0x20]
mov dword [edi + 0x1c], eax
mov eax, dword [ebx + 0x20]
mov esi, dword [ebx + 0x18]
mov dword [esp + 0x84], eax
cmp dword [esi + 0x54], eax
jg 0x4b1e7e
mov eax, dword [esi + 0x54]
test eax, eax
je 0x4b1e1b
add eax, eax
jmp 0x4b1e20
mov eax, 0x33
mov edx, dword [ebx + 4]
mov ecx, dword [esi]
lea eax, [eax + eax*4]
shl eax, 2
push eax
call fcn.0044d700
add esp, 4
mov dword [esp + 0x78], eax
test eax, eax
je 0x4b1eb5
mov ecx, dword [esi]
cmp eax, dword [ecx + 0x10c]
jb 0x4b1e57
cmp eax, dword [ecx + 0x110]
jae 0x4b1e57
movzx ecx, word [ecx + 0xf0]
jmp 0x4b1e63
push eax
call dword [0x62bc10]
add esp, 4
mov ecx, eax
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0x78]
shr edx, 4
mov dword [esi + 0x54], edx
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x84]
inc dword [ebx + 0x20]
mov edx, dword [esp + 0x8c]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov word [eax + ecx*4], 0x19
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ebx, dword [esp + 0x44]
mov ecx, ebx
call fcn.0047e530
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x64]
mov esi, dword [edx + 0x14]
xor edx, edx
mov dword [esp + 0xc], edx
cmp dword [eax + 0xc], edx
jle 0x4b1f1a
test byte [esi + 0x14], 6
jne 0x4b1f0d
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edi + 0x40]
and eax, dword [edi + 0x44]
or ecx, eax
jne 0x4b1f09
mov edx, dword [esi]
push 8
push dword [esp + 0x8c]
mov ecx, ebx
call fcn.00480130
mov edx, dword [esp + 0x14]
add esp, 8
or byte [esi + 0x14], 4
mov eax, dword [esp + 0x64]
inc edx
add esi, 0x30
mov dword [esp + 0xc], edx
cmp edx, dword [eax + 0xc]
jl 0x4b1ed6
mov eax, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
mov ecx, dword [esp + 0x104]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00586d1b
mov esp, ebp
pop ebp
ret