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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7c
mov edx, dword [ebp + 8]
push ebx
push esi
lea eax, [edx + 0x148]
mov dword [ebp - 0x28], eax
push edi
mov edi, dword [edx]
lea esi, [edx + 0x2e0]
mov eax, dword [edi]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [edi + 8]
lea eax, [eax + eax*4]
shl eax, 4
add esi, eax
mov dword [ebp - 0x18], edi
mov eax, dword [esi + 0x40]
mov dword [ebp - 0x14], eax
movzx eax, byte [esi + 0x2c]
mov dword [ebp - 0x24], ebx
lea ecx, [eax + eax*4]
mov eax, dword [edx + 4]
mov edx, dword [edx + 0x44]
add eax, 8
shl ecx, 4
add eax, ecx
mov dword [ebp - 0x40], eax
mov eax, dword [eax + 0x30]
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 4], esi
test edx, edx
jle 0x4b2686
mov ecx, dword [ebp + 8]
add ecx, 0x48
lea esp, [esp]
mov edi, dword [ebp - 8]
cmp dword [ecx], edi
mov edi, dword [ebp - 0x18]
je 0x4b27e7
inc eax
add ecx, 4
cmp eax, edx
jl 0x4b2670
xorps xmm0, xmm0
movlpd qword [ebp - 0x7c], xmm0
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x7c]
not ecx
and ecx, dword [ebp + 0x10]
not edx
and edx, dword [ebp + 0x14]
mov dword [esi + 0x48], ecx
mov ecx, dword [ebp + 8]
mov dword [esi + 0x4c], edx
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x1c]
mov ecx, dword [ebp + 0xc]
call fcn.00434fd0
and eax, 1
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
test byte [eax + 0x24], 0x40
je 0x4b26d4
mov eax, dword [ebp + 8]
mov dword [ebp - 0x68], 1
test byte [eax + 0x24], 0x20
je 0x4b26db
mov dword [ebp - 0x68], 0
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x64], ecx
mov edx, dword [ecx + 0x74]
mov dword [ebp - 0x60], edx
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4b2714
push 0
lea eax, [edx*8 + 4]
push eax
push dword [ecx + 0x78]
push dword [ecx]
call fcn.00487ad0
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
add esp, 0x10
mov dword [ecx + 0x78], eax
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x4b2722
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x3c], eax
mov edx, dword [ecx + 0x74]
mov dword [ebp - 0x64], ecx
lea eax, [edx + 1]
mov dword [ecx + 0x74], eax
lea eax, [edx - 1]
mov dword [ebp - 0x60], edx
test edx, eax
jne 0x4b2769
push 0
lea eax, [edx*8 + 4]
push eax
push dword [ecx + 0x78]
push dword [ecx]
call fcn.00487ad0
mov ecx, dword [ebp - 0x64]
mov edx, dword [ebp - 0x60]
add esp, 0x10
mov dword [ecx + 0x78], eax
mov eax, dword [ecx + 0x78]
test eax, eax
je 0x4b2777
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
cmp byte [esi + 0x2c], 0
mov dword [ebp - 0x50], eax
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x40]
jbe 0x4b27ab
test byte [eax + 0x24], 8
je 0x4b27ab
mov eax, dword [edi + 0x4c]
inc eax
push eax
push 0
push 0x4a
mov dword [edi + 0x4c], eax
push ebx
mov dword [esi], eax
call fcn.004a4dc0
mov eax, dword [ebp - 0x40]
add esp, 0x10
mov ecx, dword [eax + 0x28]
mov dword [ebp - 0x78], ecx
test cl, 0x10
je 0x4b2853
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x18]
mov ecx, dword [ebx + 0x20]
mov dword [ebp + 0xc], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x68], edx
cmp dword [eax + 0x58], ecx
jg 0x4b2801
push dword [ebp + 0xc]
push 0
push edx
push 0xf
push ebx
call fcn.00470460
mov edx, dword [ebp - 0x68]
add esp, 0x14
jmp 0x4b2836
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 0x4b2694
mov edi, dword [ebp + 0xc]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 0xc], edi
mov edi, dword [ebp - 0x18]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0x10], 0
push dword [ebp - 0x3c]
push edx
push 0x10
push ebx
call fcn.004a4dc0
add esp, 0x10
mov dword [esi + 0x34], eax
mov byte [esi + 0x2d], 0xd
mov edx, esi
jmp 0x4b2bf7
mov edx, dword [ebp - 0x14]
mov eax, dword [edx + 0x24]
test eax, 0x400
je 0x4b2c45
movzx ecx, word [edx + 0x28]
mov ebx, dword [edi + 0x40]
inc dword [edi + 0x6c]
mov dword [ebp + 0xc], ebx
mov ebx, dword [edi + 0x3c]
lea eax, [ecx + 2]
mov dword [ebp - 0x40], ecx
cmp eax, ebx
jg 0x4b2893
add eax, dword [ebp + 0xc]
mov dword [edi + 0x40], eax
lea eax, [ecx + 2]
sub ebx, eax
mov eax, ebx
mov dword [ebp - 0x68], ebx
mov dword [edi + 0x3c], eax
jmp 0x4b28a4
mov eax, dword [edi + 0x4c]
lea ebx, [eax + 1]
add eax, 2
add eax, ecx
mov dword [ebp + 0xc], ebx
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0xc]
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x64], eax
test ecx, ecx
jle 0x4b28fd
xor ebx, ebx
mov eax, dword [edx + 0x30]
mov ecx, dword [eax + ebx*4]
test ecx, ecx
je 0x4b28f4
mov eax, dword [ebp + 0xc]
add eax, 2
add eax, ebx
test byte [ecx + 0x12], 1
push eax
je 0x4b28e3
push dword [ebp - 0xc]
push ebx
push esi
push ecx
push edi
call fcn.00465020
mov eax, dword [esi + 0x10]
add esp, 0x18
mov dword [ebp - 0x64], eax
jmp 0x4b28f1
mov eax, dword [ecx]
push dword [eax + 0x10]
push edi
call fcn.0048a2a0
add esp, 0xc
mov edx, dword [ebp - 0x14]
inc ebx
cmp ebx, dword [ebp - 0x40]
jl 0x4b28b3
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, dword [edx + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x4b291e
push 0
push dword [ebp + 0xc]
push edx
push 0x4a
push ebx
call fcn.00470460
add esp, 0x14
jmp 0x4b2950
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 0xc]
mov word [eax + ecx*4], 0x4a
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 edx, dword [ebp + 0xc]
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
inc edx
cmp dword [eax + 0x58], ecx
jg 0x4b2972
push 0
push edx
push dword [ebp - 0x40]
push 0x4a
push ebx
call fcn.00470460
add esp, 0x14
jmp 0x4b29ab
mov edx, dword [ebp - 0x40]
mov edi, dword [ebp - 0x18]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [ebp + 0xc]
inc edx
mov word [eax + ecx*4], 0x4a
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 ecx, dword [ebp - 0x14]
mov edx, 0xfffffff5
cmp byte [ecx + 0x1c], 0
mov eax, 0xfffffffe
cmovne eax, edx
push eax
push dword [ecx + 0x20]
push dword [ebp + 0xc]
push dword [ebp - 0x64]
push dword [ebp - 8]
push 0xb
push ebx
call fcn.004a4e90
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
mov ecx, dword [ebp + 8]
mov byte [edx + 0x1c], 0
mov dword [esi + 0x30], eax
add esp, 0x1c
cmp byte [ecx + 0x28], 0
mov ecx, 0x9f
mov eax, 0x44
cmovne eax, ecx
mov ecx, dword [ebp - 0x40]
mov byte [esi + 0x2d], al
mov eax, dword [ebx + 0x20]
dec ecx
mov dword [esi + 0x34], eax
mov dword [ebp - 0x38], ecx
js 0x4b2beb
mov eax, dword [esi + 0x38]
lea eax, [eax + eax*2]
shl eax, 2
mov dword [ebp - 0x64], eax
lea ebx, [ebx]
mov eax, dword [edx + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x68], edx
cmp ecx, 0x10
jge 0x4b2a4e
mov eax, dword [ebp - 0x14]
mov ax, word [eax + 0x1e]
shr ax, cl
test al, 1
je 0x4b2a4b
push edx
push esi
call fcn.00468a00
add esp, 8
jmp 0x4b2bdb
mov ecx, dword [ebp - 0x38]
test byte [edx + 0x12], 1
je 0x4b2bde
mov eax, dword [ebp - 0x20]
cmp byte [eax + 0x45], 0
jne 0x4b2afe
mov ecx, dword [ebp - 0x64]
mov eax, dword [esi + 0x3c]
sub ecx, 0xc
mov dword [ebp - 0x64], ecx
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
jns 0x4b2a7d
mov ecx, dword [ebx + 0x20]
dec ecx
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x4b2a8c
mov eax, 0x53464c
jmp 0x4b2a95
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
mov esi, dword [eax + 8]
movzx eax, byte [eax]
mov dword [ebp - 0x60], eax
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x5c], ecx
mov ecx, dword [ebx + 0x20]
cmp dword [eax + 0x58], ecx
jg 0x4b2ac5
push edx
push esi
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push ebx
call fcn.00470460
add esp, 0x14
jmp 0x4b2afe
mov edi, dword [ebp - 0x5c]
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
mov ebx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4], bl
mov ebx, dword [ebp - 0x24]
mov dword [eax + ecx*4 + 4], edi
mov edi, dword [ebp - 0x18]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
push 0
push 0x30
push dword [edi]
call fcn.004878a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b2bd8
push 0x30
push 0
push esi
call fcn.0041f040
or eax, 0xffffffff
push esi
mov byte [esi], 0x25
mov word [esi + 0x22], ax
mov dword [esi + 0x18], 1
call fcn.0046b6b0
mov eax, dword [edi]
add esp, 0x10
mov eax, dword [eax + 0x68]
cmp dword [esi + 0x18], eax
jle 0x4b2b53
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.004894e0
add esp, 0xc
mov eax, dword [ebp - 0x68]
push 0
mov eax, dword [eax]
push 0x31
mov eax, dword [eax + 0xc]
push dword [ebp - 0x20]
mov dword [esi + 0xc], eax
call fcn.004878a0
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x68], ecx
test ecx, ecx
je 0x4b2ba0
push 0x30
push 0
push ecx
call fcn.0041f040
mov ecx, dword [ebp - 0x68]
add esp, 0xc
or eax, 0xffffffff
mov word [ecx + 0x22], ax
lea eax, [ecx + 0x30]
mov byte [ecx], 0x9d
mov dword [ecx + 8], eax
mov byte [eax], 0
mov dword [ecx + 0x18], 1
mov dword [esi + 0x10], ecx
test ecx, ecx
je 0x4b2bc5
mov eax, dword [ebp - 0x38]
add eax, 2
add eax, dword [ebp + 0xc]
push 0
mov dword [ecx + 0x1c], eax
mov eax, dword [ebp - 4]
push dword [eax + 0x18]
push esi
push edi
call fcn.0048c190
add esp, 0x10
push esi
push dword [ebp - 0x20]
mov dword [esi + 0xc], 0
call fcn.0048c060
add esp, 8
mov esi, dword [ebp - 4]
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x14]
dec ecx
mov dword [ebp - 0x38], ecx
jns 0x4b2a20
push edi
call fcn.00489fc0
add esp, 4
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ecx + 0x14]
mov ecx, dword [ecx + 0xc]
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x68], ecx
test ecx, ecx
jle 0x4b3b5f
mov edi, edi
movzx ecx, word [eax + 0x14]
xor esi, esi
mov dword [ebp - 0x78], ecx
test cl, 6
jne 0x4b3b47
mov ecx, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
and ecx, dword [edx + 0x48]
and eax, dword [edx + 0x4c]
or ecx, eax
je 0x4b3a71
mov eax, dword [ebp + 8]
mov byte [eax + 0x29], 1
mov eax, dword [ebp + 0xc]
jmp 0x4b3b47
mov ecx, eax
and ecx, 0x100
je 0x4b2ccd
test al, 5
je 0x4b2ccd
mov eax, dword [edx + 0x30]
mov eax, dword [eax]
inc dword [edi + 0x4c]
mov ecx, dword [edi + 0x4c]
push ecx
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0xc]
push ecx
push 0
push esi
push eax
push edi
call fcn.00465020
mov ecx, dword [ebp - 0x68]
add esp, 0x18
mov dword [ebp + 0xc], eax
cmp eax, ecx
je 0x4b2c8a
push ecx
push edi
call fcn.0049ba80
mov eax, dword [ebp + 0xc]
add esp, 8
mov esi, dword [esi + 0x10]
push esi
push eax
push 0x11
push ebx
call fcn.004a4dc0
push dword [ebp + 0xc]
push esi
push dword [ebp - 8]
push 0x20
push ebx
call fcn.004a4e30
mov esi, dword [ebp + 0xc]
push 1
push esi
push edi
call fcn.0048a020
push esi
push 0xffffffffffffffff
push dword [ebp - 8]
push edi
call fcn.0048a090
mov edx, dword [ebp - 4]
add esp, 0x40
mov byte [edx + 0x2d], 0x9f
jmp 0x4b2bf7
test ecx, ecx
je 0x4b2e6b
test al, 2
je 0x4b2e6b
xor ecx, ecx
mov dword [ebp - 0x34], 0x9f
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x38], ecx
mov dword [ebp + 0xc], ecx
test al, 0x20
je 0x4b2d09
mov eax, dword [edx + 0x30]
mov ecx, 1
mov eax, dword [eax]
mov dword [ebp + 0xc], eax
mov eax, dword [edx + 0x24]
jmp 0x4b2d0b
xor ecx, ecx
test al, 0x10
je 0x4b2d1a
mov eax, dword [edx + 0x30]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x38], edx
jmp 0x4b2d1c
xor edx, edx
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4b2d2e
mov eax, dword [ebp + 0xc]
mov dword [ebp + 0xc], edx
mov dword [ebp - 0x38], eax
jmp 0x4b2d31
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x4b2d8b
mov edi, dword [edx]
lea eax, [ebp - 0x68]
push eax
push dword [edi + 0x10]
mov dword [ebp - 0x40], 0x1917181a
push dword [ebp - 0x18]
call fcn.0048bc50
mov esi, eax
movzx eax, byte [edi]
push esi
push dword [ebp - 0x3c]
movzx eax, byte [ebp + eax - 0x66]
push dword [ebp - 8]
push eax
push ebx
call fcn.004a4e30
mov edi, dword [ebp - 0x18]
push 1
push esi
push edi
call fcn.0048a020
push dword [ebp - 0x68]
push edi
call fcn.0049ba80
push dword [ebp + 0xc]
mov esi, dword [ebp - 4]
push esi
call fcn.00468a00
add esp, 0x3c
jmp 0x4b2daa
push dword [ebp - 0x3c]
mov edx, 0x21
push dword [ebp - 8]
test ecx, ecx
mov eax, 0x37
cmovne eax, edx
push eax
push ebx
call fcn.004a4dc0
add esp, 0x10
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4b2e0a
mov esi, dword [eax]
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
push dword [esi + 0x10]
mov dword [ebp - 0x64], eax
push edi
call fcn.0048a2a0
mov al, byte [esi]
add esp, 0xc
cmp al, 0x28
je 0x4b2de6
cmp al, 0x26
je 0x4b2de6
mov ecx, dword [ebp - 0xc]
xor eax, eax
test ecx, ecx
setne al
lea eax, [eax*2 + 0x26]
jmp 0x4b2df7
mov ecx, dword [ebp - 0xc]
xor eax, eax
test ecx, ecx
sete al
lea eax, [eax*2 + 0x27]
mov ecx, dword [ebp - 0x38]
mov esi, dword [ebp - 4]
push ecx
push esi
mov dword [ebp - 0x34], eax
call fcn.00468a00
add esp, 8
cmp dword [ebp - 0xc], 0
mov ecx, dword [ebx + 0x20]
sete al
add al, 6
cmp dword [ebp - 0x34], 0x9f
mov byte [esi + 0x2d], al
mov eax, dword [ebp - 8]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], ecx
je 0x4b2bf4
inc dword [edi + 0x4c]
mov esi, dword [edi + 0x4c]
push esi
push eax
push 0x79
push ebx
call fcn.004a4dc0
push esi
push 0xffffffffffffffff
push dword [ebp - 8]
push edi
call fcn.0048a090
push esi
push dword [ebp - 0x3c]
push dword [ebp - 0x64]
push dword [ebp - 0x34]
push ebx
call fcn.004a4e30
push 0x53
push ebx
call fcn.004a52a0
add esp, 0x3c
jmp 0x4b2bf4
test eax, 0x200
je 0x4b33b5
movzx ecx, word [edx + 0x18]
mov edi, dword [esi + 8]
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx + 0x1c]
test byte [edi + 0x24], 1
mov edi, dword [ebp - 0x18]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x44], 0
mov byte [ebp - 0x2c], 0
mov byte [ebp + 0xf], 0
mov dword [ebp - 0x40], ecx
je 0x4b2ed6
mov ebx, dword [ebp + 8]
cmp byte [ebx + 0x26], 0
jle 0x4b2ed6
mov edi, dword [ebp - 0x3c]
cmp word [ecx + 0x32], di
mov edi, dword [ebp - 0x18]
jbe 0x4b2ed6
mov byte [ebp - 0x2c], 1
mov dword [ebp - 0x30], 1
mov ecx, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x24]
movzx ecx, cx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x64], ecx
test al, 0x20
je 0x4b2f02
mov eax, dword [edx + 0x30]
mov dword [ebp - 0x30], 1
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x64], eax
mov eax, dword [edx + 0x24]
test al, 0x10
je 0x4b2f98
mov eax, dword [edx + 0x30]
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x30], 1
mov eax, dword [eax + edx*4]
mov edx, 0x100
mov dword [ebp - 0x38], eax
test word [eax + 0x14], dx
je 0x4b2f63
mov eax, dword [edi + 0x4c]
inc eax
push eax
push 1
push 0x4a
mov dword [edi + 0x4c], eax
push ebx
mov dword [esi + 0x24], eax
call fcn.004a4dc0
mov eax, dword [ebx + 0x20]
shl dword [esi + 0x24], 1
mov edx, dword [ebp - 0x10]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x40]
xor ecx, ecx
mov eax, dword [eax + 0x1c]
add esp, 0x10
cmp byte [edx + eax], 1
sete cl
xor ecx, dword [ebp - 0xc]
or dword [esi + 0x24], ecx
mov ecx, edx
cmp dword [ebp - 0x34], 0
jne 0x4b2f98
mov edx, dword [ebp - 0x40]
mov eax, dword [edx + 4]
movsx ecx, word [eax + ecx*2]
test ecx, ecx
js 0x4b2f98
mov eax, dword [edx + 0xc]
mov edx, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
add ecx, ecx
movzx edx, dl
cmp byte [eax + ecx*8 + 0xc], 0
mov dword [ebp - 0x64], 1
cmove edx, dword [ebp - 0x64]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
movzx ecx, word [eax + 0x32]
mov dword [ebp - 0x64], ecx
cmp dx, cx
jae 0x4b2fc0
mov eax, dword [eax + 0x1c]
mov edx, dword [ebp - 0x10]
xor ecx, ecx
cmp byte [edx + eax], cl
sete cl
cmp dword [ebp - 0xc], ecx
je 0x4b2fcf
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x4b2fe8
cmp word [ebp - 0x64], dx
jne 0x4b2fe8
jmp 0x4b2fd2
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x34], eax
mov al, byte [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov byte [ebp + 0xf], al
mov byte [ebp - 0x2c], 0
lea eax, [ebp - 0x48]
push eax
push dword [ebp - 0x30]
push ecx
push esi
push edi
call fcn.00464750
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x48]
add esp, 0x14
test eax, eax
je 0x4b300d
mov al, byte [eax + ecx]
mov byte [ebp - 0x44], al
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x4b3027
test byte [eax + 0x12], 0x28
mov dword [ebp - 0x60], 0
je 0x4b302e
mov dword [ebp - 0x60], 1
mov edx, dword [ebp - 0x38]
test edx, edx
je 0x4b3042
test byte [edx + 0x12], 0x28
mov dword [ebp - 0x64], 0
je 0x4b3049
mov dword [ebp - 0x64], 1
test eax, eax
jne 0x4b3056
mov dword [ebp - 0x5c], eax
cmp word [ebp - 0x3c], ax
jbe 0x4b305d
mov dword [ebp - 0x5c], 1
mov edx, ecx
mov dword [ebp - 0x3c], edx
test eax, eax
je 0x4b30eb
add ecx, dword [ebp - 0x30]
mov eax, dword [eax]
push ecx
mov eax, dword [eax + 0x10]
push eax
push edi
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], ecx
call fcn.0048a2a0
push dword [ebp - 0x34]
push esi
push ebx
call fcn.004bd8f0
push dword [ebp - 0x54]
call fcn.0048a1f0
add esp, 0x1c
test eax, eax
je 0x4b30aa
push dword [ebp - 0x4c]
push dword [ebp - 0x58]
push 0x22
push ebx
call fcn.004a4dc0
add esp, 0x10
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x4b3112
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x58], eax
movzx eax, byte [eax]
push eax
push dword [ebp - 0x54]
call fcn.00485fc0
add esp, 8
cmp al, 0x41
mov eax, dword [ebp - 0x58]
jne 0x4b30d0
mov byte [eax], 0x41
movzx eax, byte [eax]
push eax
push dword [ebp - 0x54]
call fcn.0048ce10
add esp, 8
test eax, eax
je 0x4b3112
mov eax, dword [ebp - 0x58]
mov byte [eax], 0x41
jmp 0x4b3112
cmp byte [ebp - 0x2c], 0
je 0x4b3119
mov eax, dword [ebp - 0x30]
add eax, ecx
push eax
push 0
push 0x4d
push ebx
call fcn.004a4dc0
add esp, 0x10
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 1
mov edx, dword [ebp - 0x3c]
inc edx
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x2c]
push dword [ebp - 0x48]
movzx eax, cl
mov ecx, edx
sub ecx, eax
push ecx
push dword [ebp - 0x30]
push edi
call fcn.00464aa0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x3c]
movzx eax, word [eax + 0x2a]
add esp, 0x10
test ax, ax
je 0x4b3146
cmp ecx, eax
je 0x4b316e
mov eax, dword [ebp - 0x5c]
push ecx
push dword [ebp - 0x30]
mov ecx, dword [ebp - 0x60]
push dword [ebp - 0x4c]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0xc]
push dword [ebp - 0x1c]
movzx eax, byte [ecx + eax*2 + 0x5119d4]
push eax
push ebx
call fcn.004a4f10
add esp, 0x18
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x4b31fe
mov eax, dword [eax]
push 1
mov eax, dword [eax + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x30]
push eax
push edi
mov dword [ebp - 0x60], eax
call fcn.0048a020
push dword [ebp - 0x60]
push dword [ebp + 0xc]
push edi
call fcn.0048a2a0
push dword [ebp - 0x38]
push esi
push ebx
call fcn.004bd8f0
push dword [ebp + 0xc]
call fcn.0048a1f0
add esp, 0x28
test eax, eax
je 0x4b31c9
push dword [ebp - 0x4c]
push dword [ebp - 0x60]
push 0x22
push ebx
call fcn.004a4dc0
add esp, 0x10
push dword [ebp - 0x44]
push dword [ebp + 0xc]
call fcn.00485fc0
add esp, 8
cmp al, 0x41
je 0x4b321f
push dword [ebp - 0x44]
push dword [ebp + 0xc]
call fcn.0048ce10
add esp, 8
test eax, eax
jne 0x4b321f
lea eax, [ebp - 0x44]
push eax
push 1
push dword [ebp - 0x60]
push edi
call fcn.00464aa0
jmp 0x4b321c
cmp byte [ebp + 0xf], 0
je 0x4b3222
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 0x30]
push eax
push 0
push 0x4d
push ebx
call fcn.004a4dc0
mov dword [ebp - 0x64], 0
add esp, 0x10
inc dword [ebp - 0x10]
push dword [ebp - 0x48]
push dword [ebp - 0x20]
call fcn.00487810
mov eax, dword [ebx + 0x20]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x10]
add esp, 8
test eax, eax
je 0x4b325f
mov ecx, dword [ebp - 0x64]
push eax
push dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
push dword [ebp - 0x4c]
movzx eax, byte [ecx + eax*2 + str._98:]
push dword [ebp - 0x1c]
push eax
push ebx
call fcn.004a4f10
add esp, 0x18
push dword [ebp - 0x34]
push esi
call fcn.00468a00
push dword [ebp - 0x38]
push esi
call fcn.00468a00
add esp, 0x10
cmp dword [ebp - 0x68], 0
jne 0x4b3373
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax + 0xc]
test byte [ecx + 0x2a], 0x20
jne 0x4b32e3
mov ecx, dword [ebp + 8]
mov edx, 0x8000
test word [ecx + 0x24], dx
je 0x4b32ce
inc dword [edi + 0x4c]
mov esi, dword [edi + 0x4c]
push esi
push dword [ebp - 0x1c]
push 0x7f
push ebx
call fcn.004a4dc0
mov edx, dword [ebp - 8]
push esi
push 0xffffffffffffffff
push edx
push edi
call fcn.0048a090
push esi
push 0
push edx
push 0x20
push ebx
call fcn.004a4e30
mov esi, dword [ebp - 4]
add esp, 0x34
jmp 0x4b3373
push dword [ebp - 0x1c]
push dword [ebp - 8]
push eax
push ecx
call fcn.00464da0
add esp, 0x10
jmp 0x4b3373
mov edx, dword [ebp - 0x1c]
cmp dword [ebp - 8], edx
je 0x4b3376
push ecx
call fcn.0049b210
mov dword [ebp + 0xc], eax
movzx eax, word [eax + 0x32]
push eax
push edi
call fcn.00490df0
mov ecx, eax
mov eax, dword [ebp + 0xc]
xor edx, edx
add esp, 0xc
mov dword [ebp - 0x68], ecx
cmp dx, word [eax + 0x32]
jae 0x4b335c
xor edi, edi
mov esi, eax
lea ebx, [ebx]
lea eax, [edi + ecx]
push eax
mov eax, dword [esi + 4]
movzx eax, word [eax + edi*2]
push eax
push dword [ebp - 0x40]
call fcn.00485b40
add esp, 8
cwde
push eax
push dword [ebp - 0x1c]
push 0x5e
push ebx
call fcn.004a4e30
movzx eax, word [esi + 0x32]
mov ecx, dword [ebp - 0x68]
inc edi
add esp, 0x14
cmp edi, eax
jl 0x4b3320
mov edi, dword [ebp - 0x18]
mov esi, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + 0x32]
push eax
push ecx
push dword [ebp - 0x50]
push dword [ebp - 8]
push 0x1e
push ebx
call fcn.004a4f10
add esp, 0x18
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
test dword [ecx + 0x24], 0x1000
je 0x4b3388
mov byte [esi + 0x2d], 0x9f
jmp 0x4b3394
cmp dword [ebp - 0xc], 0
sete al
add al, 6
mov byte [esi + 0x2d], al
mov dword [esi + 0x30], edx
mov al, byte [ecx + 0x26]
mov edx, dword [ebp - 4]
and al, 1
mov byte [esi + 0x2e], al
test byte [ecx + 0x24], 0xf
jne 0x4b2bf7
mov byte [esi + 0x2f], 1
jmp 0x4b2bf7
test eax, 0x2000
je 0x4b3a2a
mov eax, dword [edi + 0x48]
inc dword [edi + 0x4c]
mov dword [ebp - 0x54], eax
inc eax
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0x4c]
push ebx
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x4c], 0
call fcn.004acea0
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
add esp, 4
mov eax, dword [eax + 0x30]
mov dword [ebp - 0x58], 0
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov byte [esi + 0x2d], 0x46
mov dword [esi + 0x30], edx
mov al, byte [eax + 0x2b]
mov dword [ebp - 0x38], ecx
cmp al, 1
jbe 0x4b34fc
movzx eax, al
sub eax, dword [ebp + 0xc]
push 0
dec eax
mov dword [ebp - 0x68], eax
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, 0x58
push ecx
push dword [ebp - 0x20]
call fcn.00487870
mov ecx, eax
add esp, 0xc
mov dword [ebp - 0x34], ecx
test ecx, ecx
jne 0x4b3469
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x14]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x68]
mov esi, dword [ebp - 0x40]
mov al, dl
inc al
movzx eax, al
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov eax, dword [ebp + 8]
lea edi, [ecx + 8]
mov ecx, 0x14
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax + 4]
add ecx, 8
mov dword [ebp - 0x64], ecx
cmp edx, 1
jl 0x4b34ce
mov ebx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
add ebx, 0x58
add eax, 0x7c
mov dword [ebp - 0x68], eax
movzx eax, byte [eax]
mov edi, ebx
lea esi, [eax + eax*4]
mov eax, dword [ebp - 0x68]
shl esi, 4
add esi, ecx
mov ecx, 0x14
add eax, 0x50
add ebx, 0x50
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
dec edx
jne 0x4b34a5
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x38]
mov edi, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
test byte [edx + 0x24], 8
jne 0x4b353c
test byte [ecx + 0x2a], 0x20
jne 0x4b3507
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
push eax
push 0
push 0x4d
push ebx
mov dword [ebp - 0x3c], eax
call fcn.004a4dc0
add esp, 0x10
jmp 0x4b3533
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x34], eax
jmp 0x4b34d4
push ecx
call fcn.0049b210
mov esi, eax
mov eax, dword [edi + 0x48]
mov dword [ebp - 0x3c], eax
lea ecx, [eax + 1]
mov dword [edi + 0x48], ecx
movzx ecx, word [esi + 0x32]
push ecx
push eax
push 0x69
push ebx
call fcn.004a4dc0
push esi
push edi
call fcn.004af110
add esp, 0x1c
inc dword [edi + 0x4c]
mov eax, dword [edi + 0x4c]
mov dword [ebp - 0x4c], eax
push dword [ebp - 0x5c]
push 0
push 0x4a
push ebx
call fcn.004a4dc0
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x28]
add esp, 0x10
mov ecx, dword [eax + 0xc]
cmp ecx, 1
jle 0x4b364f
xor edx, edx
mov dword [ebp - 0x68], edx
test ecx, ecx
jle 0x4b364f
mov ebx, dword [ebp - 0x20]
xor esi, esi
xor edi, edi
mov eax, dword [eax + 0x14]
add eax, esi
mov ecx, dword [eax]
cmp eax, dword [ebp - 0x14]
je 0x4b35b4
test byte [ecx + 4], 1
jne 0x4b35b4
test byte [eax + 0x14], 6
jne 0x4b35b4
mov edi, 0x1fff
test word [eax + 0x12], di
mov edi, dword [ebp - 0x1c]
je 0x4b35b4
push 0
push ecx
push ebx
call fcn.0048c0f0
push eax
push edi
push ebx
call fcn.00489930
mov edx, dword [ebp - 0x68]
mov edi, eax
add esp, 0x18
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x28]
inc edx
add esi, 0x30
mov dword [ebp - 0x68], edx
cmp edx, dword [eax + 0xc]
jl 0x4b3572
mov ebx, dword [ebp - 0x24]
test edi, edi
mov edi, dword [ebp - 0x18]
je 0x4b3653
push 0
push 0x30
push dword [edi]
call fcn.004878a0
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b363a
push 0x30
push 0
push esi
call fcn.0041f040
or eax, 0xffffffff
mov word [esi + 0x22], ax
mov eax, dword [ebp - 0x1c]
mov dword [esi + 0x10], eax
mov byte [esi], 0x1c
mov dword [esi + 0x18], 1
mov eax, dword [eax + 4]
and eax, 0x200100
or dword [esi + 4], eax
push esi
call fcn.0046b6b0
mov eax, dword [edi]
add esp, 0x10
mov eax, dword [eax + 0x68]
cmp dword [esi + 0x18], eax
jle 0x4b3648
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push edi
call fcn.004894e0
mov ecx, esi
add esp, 0xc
mov dword [ebp - 0x1c], ecx
jmp 0x4b3656
mov eax, dword [ebp - 0x1c]
push eax
push dword [edi]
call fcn.0048c060
add esp, 8
mov ecx, esi
mov dword [ebp - 0x1c], ecx
jmp 0x4b3656
xor ecx, ecx
jmp 0x4b3656
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x30]
mov ax, word [eax + 0x24]
mov edx, 0x80f0
and ax, dx
mov edx, 0xf0
or ax, dx
movzx edx, ax
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x44], eax
cmp dword [esi + 0xc], eax
jle 0x4b3930
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x18], 0x400
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esi + 0x14]
mov esi, dword [ebp - 8]
cmp dword [eax + 8], esi
je 0x4b36b0
mov esi, dword [ebp - 0x18]
test word [eax + 0x12], si
je 0x4b3917
mov eax, dword [eax]
xor esi, esi
mov dword [ebp - 0x60], esi
test ecx, ecx
je 0x4b36c6
test byte [eax + 4], 1
jne 0x4b36c6
mov dword [ecx + 0xc], eax
mov eax, ecx
push dword [ebp - 0x54]
push edx
push 0
push 0
push eax
push dword [ebp - 0x34]
push edi
call fcn.004b1bc0
mov edx, eax
add esp, 0x1c
mov dword [ebp - 0x70], edx
test edx, edx
je 0x4b3914
mov eax, dword [ebp - 4]
push 0
movzx ecx, byte [eax + 0x2c]
push ecx
push dword [ebp + 0xc]
lea ecx, [edx + 0x2e0]
push ecx
push dword [ebp - 0x34]
push edi
call fcn.004b4580
mov eax, dword [ebp + 8]
add esp, 0x18
test byte [eax + 0x24], 8
jne 0x4b386e
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x44]
mov eax, dword [eax + 0xc]
dec eax
cmp esi, eax
mov eax, 0xffffffff
cmove esi, eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x64], esi
test byte [eax + 0x2a], 0x20
jne 0x4b375f
push 0
push dword [ebp - 0x4c]
push dword [ebp - 8]
push 0xffffffffffffffff
push eax
push edi
call fcn.0048a6f0
push esi
push eax
push 0
push dword [ebp - 0x3c]
push 0x3d
push ebx
call fcn.004a4f10
add esp, 0x30
mov esi, eax
jmp 0x4b386e
push eax
call fcn.0049b210
movzx esi, word [eax + 0x32]
mov ecx, dword [edi + 0x3c]
mov edx, dword [edi + 0x40]
add esp, 4
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x40], edx
cmp esi, ecx
jg 0x4b378c
lea eax, [edx + esi]
sub ecx, esi
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], ecx
jmp 0x4b379a
mov eax, dword [edi + 0x4c]
lea edx, [eax + 1]
add eax, esi
mov dword [ebp - 0x40], edx
mov dword [edi + 0x4c], eax
mov dword [ebp - 0xc], 0
test esi, esi
jle 0x4b37ed
mov ebx, dword [ebp - 0xc]
mov esi, edx
lea ebx, [ebx]
mov eax, dword [ebp - 0x6c]
push 0
mov eax, dword [eax + 4]
push esi
movsx eax, word [eax + ebx*2]
push dword [ebp - 8]
push eax
push dword [ebp - 0x38]
push edi
call fcn.0048a6f0
add esp, 0x18
cmp eax, esi
je 0x4b37e0
push esi
push eax
push 0x53
push dword [edi + 8]
call fcn.004a4dc0
add esp, 0x10
inc ebx
inc esi
cmp ebx, dword [ebp - 0x68]
jl 0x4b37b0
mov ebx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4b3810
push esi
push dword [ebp - 0x40]
push 0
push dword [ebp - 0x3c]
push 0x1f
push ebx
call fcn.004a4f10
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x64]
add esp, 0x18
test eax, eax
js 0x4b3850
push dword [ebp - 0x4c]
push esi
push dword [ebp - 0x40]
push 0x60
push ebx
call fcn.004a4e30
push 0
push dword [ebp - 0x4c]
push dword [ebp - 0x3c]
push 0x7c
push ebx
call fcn.004a4e30
add esp, 0x28
cmp dword [ebp - 0x64], 0
je 0x4b3850
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
jne 0x4b3850
mov eax, dword [ebx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 4]
mov byte [eax + ecx*4 - 0x11], 0x10
push esi
push dword [ebp - 0x40]
push edi
call fcn.0048a020
add esp, 0xc
cmp esi, dword [edi + 0x3c]
jle 0x4b386b
mov eax, dword [ebp - 0x40]
mov dword [edi + 0x3c], esi
mov dword [edi + 0x40], eax
mov esi, dword [ebp - 0x60]
push dword [ebp - 0x10]
push dword [ebp - 0x5c]
push 0xe
push ebx
call fcn.004a4dc0
add esp, 0x10
test esi, esi
je 0x4b38b2
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x60], ecx
mov edx, dword [ebx + 0x20]
test esi, esi
jns 0x4b3897
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x4b38a6
mov eax, 0x53464c
jmp 0x4b38af
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x58]
cmp byte [edx + 0x29], 0
mov ecx, dword [edx + 0x320]
cmovne eax, dword [ebp - 0x74]
test dword [ecx + 0x24], 0x200
mov dword [ebp - 0x58], eax
je 0x4b3904
cmp dword [ebp - 0x44], 0
je 0x4b38e0
mov eax, dword [ebp - 0x2c]
cmp dword [ecx + 0x1c], eax
jne 0x4b3904
mov eax, dword [ebp - 0x38]
test byte [eax + 0x2a], 0x20
je 0x4b38f5
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x38]
and al, 3
cmp al, 2
je 0x4b3904
mov esi, dword [ecx + 0x1c]
or dword [ebp - 0x48], 0x1000
mov dword [ebp - 0x2c], esi
jmp 0x4b390b
mov dword [ebp - 0x2c], 0
push edx
call fcn.004b3df0
add esp, 4
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x30]
inc eax
cmp eax, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x44], eax
jl 0x4b3692
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 4]
mov dword [esi + 0x38], eax
test eax, eax
je 0x4b3943
mov eax, dword [ebp - 0x54]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4b395d
push eax
push dword [ebp - 0x20]
mov dword [eax + 0xc], 0
call fcn.0048c060
add esp, 8
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebx + 0x20]
test ecx, ecx
jns 0x4b396a
lea ecx, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x4b3979
mov eax, 0x53464c
jmp 0x4b3982
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 4], edx
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
mov edx, dword [esi + 0xc]
cmp dword [eax + 0x58], ecx
jg 0x4b39a5
push 0
push edx
push 0
push 0xd
push ebx
call fcn.00470460
add esp, 0x14
jmp 0x4b39d8
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*4], 0xd
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]
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x4b39f3
mov eax, dword [ebp - 0x10]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ebx + 0x20]
mov dword [ecx], eax
mov eax, dword [ebx + 0x20]
dec eax
mov dword [edx + 0x60], eax
mov eax, dword [ebp + 8]
cmp byte [eax + 0x2b], 1
jbe 0x4b3a11
push dword [ebp - 0x34]
push dword [ebp - 0x20]
call fcn.00487810
add esp, 8
cmp dword [ebp - 0x58], 0
jne 0x4b3a34
push dword [ebp - 0x14]
push esi
call fcn.00468a00
add esp, 8
mov edx, esi
jmp 0x4b2bf7
test byte [ebp - 0x78], 0x20
je 0x4b3a3b
mov byte [esi + 0x2d], 0x9f
mov edx, esi
jmp 0x4b2bf7
mov ecx, dword [ebp - 0xc]
push dword [ebp - 0x3c]
mov al, byte [ecx + 0x511eac]
mov byte [esi + 0x2d], al
mov eax, dword [ebp - 8]
push eax
mov dword [esi + 0x30], eax
movzx eax, byte [ecx + 0x511f2c]
push eax
push ebx
call fcn.004a4dc0
add esp, 0x10
inc eax
mov dword [esi + 0x34], eax
mov byte [esi + 0x2f], 1
mov edx, esi
jmp 0x4b2bf7
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
cmp dword [edx], esi
je 0x4b3a87
test byte [ecx + 4], 1
je 0x4b3b47
test dword [ebp - 0x78], 0x200
je 0x4b3afd
mov eax, dword [edx + 0x24]
mov ecx, eax
shr ecx, 1
test al, 1
mov eax, dword [ebx + 0x18]
mov edx, esi
mov esi, dword [ebx + 0x20]
setne dl
mov dword [ebp - 0x78], ecx
add edx, 0x15
cmp dword [eax + 0x58], esi
jg 0x4b3ac2
push 0
push 0
push ecx
push edx
push ebx
call fcn.00470460
add esp, 0x14
mov esi, eax
jmp 0x4b3afa
lea ecx, [esi + esi*4]
lea eax, [esi + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
mov byte [eax + ecx*4], dl
mov edx, dword [ebp - 0x78]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov ecx, dword [ebp - 0x74]
push 0x10
push dword [ebp - 0x50]
push ecx
push edi
call fcn.0048c190
add esp, 0x10
test esi, esi
je 0x4b3b3f
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x18]
dec ecx
mov dword [eax + 0x60], ecx
mov edx, dword [ebx + 0x20]
test esi, esi
jns 0x4b3b24
lea esi, [edx - 1]
mov eax, dword [ebx]
cmp byte [eax + 0x45], 0
je 0x4b3b33
mov eax, 0x53464c
jmp 0x4b3b3c
mov eax, dword [ebx + 4]
lea ecx, [esi + esi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [ebp + 0xc]
or word [eax + 0x14], 4
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 4]
dec ecx
add eax, 0x30
mov dword [ebp - 0x68], ecx
mov dword [ebp + 0xc], eax
test ecx, ecx
jg 0x4b2c10
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax + 0xc]
mov esi, dword [eax + 0x14]
mov dword [ebp + 0xc], esi
mov dword [ebp + 8], ecx
test ecx, ecx
jle 0x4b3d16
mov ebx, dword [ebp - 4]
lea esp, [esp]
test byte [esi + 0x14], 6
jne 0x4b3d01
movzx eax, word [esi + 0x12]
test al, 0x82
je 0x4b3d01
test eax, 0x800
je 0x4b3d01
mov edx, dword [ebp - 8]
cmp dword [esi + 8], edx
jne 0x4b3d01
cmp dword [ebx], 0
jne 0x4b3d01
mov eax, dword [esi]
push 0
push 0x83
push dword [ebp + 0x14]
mov dword [ebp - 0x74], eax
push dword [ebp + 0x10]
push dword [esi + 0xc]
push edx
push dword [ebp - 0x28]
call fcn.004b4930
add esp, 0x1c
mov dword [ebp - 0x78], eax
test eax, eax
je 0x4b3cfe
test byte [eax + 0x14], 4
jne 0x4b3cfe
mov eax, dword [ebp - 0x20]
test eax, eax
je 0x4b3c04
push 0
push 0x30
push eax
call fcn.004878a0
add esp, 0xc
mov esi, eax
jmp 0x4b3c51
cmp dword [0x531b70], 0
je 0x4b3c40
mov eax, dword [0x534328]
test eax, eax
je 0x4b3c20
push eax
call dword [0x531bc8]
add esp, 4
lea eax, [ebp - 0x68]
push eax
push 0x30
call fcn.00472560
mov eax, dword [0x534328]
add esp, 8
test eax, eax
je 0x4b3c4e
push eax
call dword [0x531bd0]
jmp 0x4b3c4b
push 0x30
call dword [0x531b98]
mov dword [ebp - 0x68], eax
add esp, 4
mov esi, dword [ebp - 0x68]
test esi, esi
je 0x4b3cfb
mov eax, dword [ebp - 0x78]
push 0x10
mov eax, dword [eax]
push dword [ebp - 0x50]
movq xmm0, qword [eax]
movq qword [esi], xmm0
movq xmm0, qword [eax + 8]
movq qword [esi + 8], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
movq xmm0, qword [eax + 0x18]
movq qword [esi + 0x18], xmm0
movq xmm0, qword [eax + 0x20]
movq qword [esi + 0x20], xmm0
movq xmm0, qword [eax + 0x28]
mov eax, dword [ebp - 0x74]
movq qword [esi + 0x28], xmm0
mov eax, dword [eax + 0xc]
push esi
push edi
mov dword [esi + 0xc], eax
call fcn.0048c190
mov ecx, dword [ebp - 0x20]
add esp, 0x10
test ecx, ecx
je 0x4b3cf2
cmp dword [ecx + 0x1c8], 0
je 0x4b3ccc
push esi
push ecx
call fcn.004726a0
add esp, 8
jmp 0x4b3cfb
cmp esi, dword [ecx + 0x120]
jb 0x4b3cf2
cmp esi, dword [ecx + 0x124]
jae 0x4b3cf2
mov eax, dword [ecx + 0x11c]
mov dword [esi], eax
dec dword [ecx + 0x108]
mov dword [ecx + 0x11c], esi
jmp 0x4b3cfb
push esi
call fcn.004584c0
add esp, 4
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
dec ecx
add esi, 0x30
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], esi
test ecx, ecx
jg 0x4b3b80
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp - 4]
mov esi, dword [edx]
test esi, esi
je 0x4b3dde
mov eax, dword [ebx + 0x20]
mov dword [edx + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x20]
cmp dword [eax + 0x58], ecx
jg 0x4b3d46
push 0
push esi
push 1
push 0x4a
push ebx
call fcn.00470460
add esp, 0x14
jmp 0x4b3d79
lea eax, [ecx + 1]
mov dword [ebx + 0x20], eax
mov eax, dword [ebx + 4]
lea ecx, [ecx + ecx*4]
mov word [eax + ecx*4], 0x4a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
push edi
call fcn.00489cd0
mov edx, dword [ebp - 0x28]
xor ebx, ebx
mov esi, dword [edx + 0x14]
add esp, 4
cmp dword [edx + 0xc], ebx
jle 0x4b3ddb
mov eax, edx
test byte [esi + 0x14], 6
mov edx, dword [ebp - 4]
jne 0x4b3dc5
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x2c]
and ecx, dword [edx + 0x48]
and eax, dword [edx + 0x4c]
or ecx, eax
jne 0x4b3dc2
push 0x10
push dword [ebp - 0x50]
push dword [esi]
push edi
call fcn.0048c190
mov edx, dword [ebp - 4]
add esp, 0x10
or word [esi + 0x14], 4
mov eax, dword [ebp - 0x28]
inc ebx
add esi, 0x30
cmp ebx, dword [eax + 0xc]
jl 0x4b3d91
mov eax, dword [edx + 0x48]
mov edx, dword [edx + 0x4c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 4]
mov eax, dword [edx + 0x48]
mov edx, dword [edx + 0x4c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret