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

Disassembly:
sub esp, 0x2c
mov eax, dword [esp + 0x38]
push ebx
mov ebx, dword [esp + 0x34]
push ebp
mov ebp, dword [eax + 0x40]
mov dword [esp + 0x18], ebp
mov edx, dword [ebx]
mov dword [esp + 0x24], edx
push esi
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x28], edi
test ebp, ebp
je 0x4ec317
cmp dword [ebp], edx
je 0x4ec313
mov ebp, dword [ebp + 0x18]
test ebp, ebp
jne 0x4ec307
mov dword [esp + 0x20], ebp
movsx eax, word [eax + 0x2a]
mov ecx, dword [ebx + 0x28]
add eax, 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x34], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x34]
mov dword [esp + 0x14], eax
lea eax, [ecx + 1]
mov dword [ebx + 0x28], eax
mov esi, dword [edi + 0x6c]
mov dword [esp + 0x24], esi
cmp dword [edi + 0x70], esi
jg 0x4ec36a
push 0
push dword [esp + 0x1c]
push ecx
push 0x64
push edi
call fcn.00490570
mov edx, dword [esp + 0x40]
add esp, 0x14
mov dword [esp + 0x24], eax
jmp 0x4ec39d
lea eax, [esi + 1]
mov dword [edi + 0x6c], eax
lea ecx, [esi + esi*4]
mov eax, dword [edi + 0x68]
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x64
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [ebx + 0x2c]
mov ecx, dword [esp + 0x44]
push 0
lea esi, [eax + 1]
add eax, dword [esp + 0x1c]
mov dword [ebx + 0x2c], eax
cmp dword [ecx], 1
mov dword [esp + 0x14], esi
jle 0x4ec571
mov eax, dword [esp + 0x54]
or ebp, 0xffffffff
test eax, eax
je 0x4ec3d8
push 0
push eax
push edx
call fcn.004798e0
add esp, 0x10
mov esi, eax
jmp 0x4ec41d
push 0x34
push dword [ebx]
call fcn.004ad310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4ec41d
push 0x34
push 0
push esi
call sub.MSVCRT.dll_memset
push esi
mov byte [esi], 0x4b
mov word [esi + 0x22], bp
call fcn.0047a7f0
mov eax, dword [ebx]
add esp, 0x10
mov eax, dword [eax + 0x78]
cmp dword [esi + 0x18], eax
jle 0x4ec41d
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.004af3d0
add esp, 0xc
mov eax, dword [ebx]
push 0
push 0x18
push eax
mov dword [esp + 0x3c], eax
call fcn.004ad310
mov ebp, eax
add esp, 0xc
test ebp, ebp
je 0x4ec457
mov dword [ebp], 0
xor eax, eax
mov dword [ebp], 1
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x10], eax
mov dword [ebp + 0x14], eax
mov dword [ebp + 4], esi
jmp 0x4ec46a
test esi, esi
je 0x4ec468
push esi
push dword [esp + 0x34]
call fcn.004b2a40
add esp, 8
xor ebp, ebp
mov eax, dword [esp + 0x48]
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x30], ecx
cmp dx, word [eax + 0x2a]
jge 0x4ec531
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x54]
mov eax, dword [eax + ecx*4]
test eax, eax
js 0x4ec4b4
mov ecx, dword [esp + 0x4c]
lea eax, [eax + eax*4]
mov eax, dword [ecx + eax*4 + 4]
test eax, eax
je 0x4ec4af
push 0
push 0
push eax
push edi
call fcn.004798e0
add esp, 0x10
push eax
jmp 0x4ec508
xor eax, eax
push eax
jmp 0x4ec508
push 0
push 0x34
push dword [ebx]
call fcn.004ad310
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4ec507
push 0x34
push 0
push esi
call sub.MSVCRT.dll_memset
or eax, 0xffffffff
mov byte [esi], 0x4b
push esi
mov word [esi + 0x22], ax
call fcn.0047a7f0
mov eax, dword [ebx]
add esp, 0x10
mov eax, dword [eax + 0x78]
cmp dword [esi + 0x18], eax
jle 0x4ec4fe
push eax
push str.Expression_tree_is_too_large__maximum_depth__d_
push ebx
call fcn.004af3d0
add esp, 0xc
mov eax, dword [esp + 0x30]
inc eax
mov word [esi + 0x20], ax
push esi
push ebp
push ebx
call fcn.004b38b0
mov ecx, dword [esp + 0x3c]
mov ebp, eax
mov eax, dword [esp + 0x54]
inc ecx
add esp, 0xc
mov dword [esp + 0x30], ecx
movsx eax, word [eax + 0x2a]
cmp ecx, eax
jl 0x4ec484
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x1c]
push 0
push 0
push dword [esp + 0x60]
push eax
push ebp
push 0
push esi
push ebx
call fcn.004ebe90
add esp, 0x20
test ebp, ebp
je 0x4ec560
push ebp
push dword [esp + 0x30]
call fcn.0047a120
add esp, 8
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x28], 0
jmp 0x4ec99b
push 4
push 0
push 0
push dword [esp + 0x68]
inc eax
mov dword [esp + 0x40], eax
inc eax
push ecx
push ebx
mov dword [esp + 0x4c], eax
mov dword [ebx + 0x2c], eax
call fcn.004e2e20
add esp, 0x1c
mov dword [esp + 0x34], eax
test eax, eax
je 0x4ecc13
mov eax, dword [esp + 0x48]
xor ecx, ecx
cmp cx, word [eax + 0x2a]
jge 0x4ec63c
mov edx, dword [esp + 0x54]
mov ebp, 0xfffffffe
add esi, 2
mov dword [esp + 0x28], edx
sub ebp, dword [esp + 0x10]
mov eax, dword [edx]
test eax, eax
js 0x4ec66d
cmp dword [ebx + 8], 0
lea eax, [eax + eax*4]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esp + 0x38], eax
je 0x4ec619
push esi
push eax
push ebx
call fcn.004b1460
add esp, 0xc
cmp eax, esi
je 0x4ec615
mov ecx, dword [esp + 0x38]
push esi
push eax
mov ecx, dword [ecx + 4]
and ecx, 0x200000
neg ecx
sbb cl, cl
add cl, 0x4e
movzx eax, cl
push eax
push dword [ebx + 8]
call fcn.004d4a60
add esp, 0x10
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x48]
inc esi
add edx, 4
mov dword [esp + 0x28], edx
movsx eax, word [eax + 0x2a]
lea ecx, [esi + ebp]
cmp ecx, eax
jl 0x4ec5c2
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
test byte [eax + 0x24], 0x80
jne 0x4ec740
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ec6e5
push 0
push esi
push dword [esp + 0x1c]
push 0x7f
push edi
call fcn.00490570
mov edx, dword [esp + 0x28]
add esp, 0x14
jmp 0x4ec714
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ec692
push esi
lea eax, [esi + ebp]
push eax
push dword [esp + 0x1c]
push 0xa6
push edi
call fcn.00490570
mov edx, dword [esp + 0x3c]
add esp, 0x14
jmp 0x4ec6c1
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0xa6
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x14]
mov dword [ecx + 4], eax
lea eax, [esi + ebp]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4ec619
lea ecx, [eax + eax*4]
mov ebx, 1
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], bx
mov ebx, dword [esp + 0x40]
jmp 0x4ec619
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x7f
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
mov ecx, dword [esp + 0x50]
lea eax, [esi + 1]
push eax
test ecx, ecx
je 0x4ec72f
push ecx
push ebx
call fcn.004afdb0
add esp, 0xc
jmp 0x4ec808
push edx
push 0x7f
push edi
call fcn.004d4a60
add esp, 0x10
jmp 0x4ec808
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4ec757
mov eax, dword [ecx + 0x38]
and al, 3
cmp al, 2
je 0x4ec757
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4ec747
mov eax, dword [ecx + 4]
mov ecx, dword [edi + 0x6c]
movzx eax, word [eax]
movsx esi, ax
cmp dword [edi + 0x70], ecx
jg 0x4ec781
push dword [esp + 0x10]
push esi
push dword [esp + 0x1c]
push 0xa6
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4ec7b0
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x10]
mov dword [eax + ecx*4], 0xa6
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x10]
add esi, 2
mov ecx, dword [edi + 0x6c]
add esi, eax
lea edx, [eax + 1]
cmp dword [edi + 0x70], ecx
jg 0x4ec7d5
push 0
push edx
push esi
push 0x4e
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4ec804
mov ebp, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x4e
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 0x2e]
mov dword [esp + 0x28], eax
test eax, eax
je 0x4ec8a7
mov edx, dword [edi]
cmp byte [edx + 0x51], 0
jne 0x4ec84f
mov eax, dword [esp + 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
push dword [eax + ecx*4 + 0x10]
lea esi, [eax + ecx*4]
movsx eax, byte [esi + 1]
push eax
push edx
call fcn.0047d1f0
add esp, 0xc
mov word [esi], 0xad
mov dword [esi + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ec86f
push 0
push 0
push dword [esp + 0x1c]
push 0x74
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4eca66
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x74
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
jmp 0x4eca66
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x4ec8b0
mov eax, ebx
mov byte [eax + 0x14], 1
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ec8d2
push dword [esp + 0x2c]
push dword [esp + 0x1c]
push esi
push 0x5b
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4ec901
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x18]
mov dword [eax + ecx*4], 0x5b
mov dword [eax + ecx*4 + 8], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
cmp dword [edi + 0x70], ecx
jg 0x4ec926
push 0
push edx
push esi
push 0x78
push edi
call fcn.00490570
mov edx, dword [esp + 0x44]
add esp, 0x14
jmp 0x4ec951
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x78
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ec96c
push edx
push dword [esp + 0x30]
push esi
push 0x79
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4ec99b
mov edx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4], 0x79
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x44]
cmp dword [eax], 1
jne 0x4ec9b0
push dword [esp + 0x34]
call fcn.004e5850
add esp, 4
mov edx, dword [edi + 0x6c]
mov dword [esp + 0x24], edx
cmp dword [edi + 0x70], edx
jg 0x4ec9d2
push 0
push 0
push esi
push 0x25
push edi
call fcn.00490570
add esp, 0x14
mov dword [esp + 0x24], eax
jmp 0x4eca01
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x25
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
xor esi, esi
cmp dword [esp + 0x18], esi
jle 0x4eca66
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4eca2c
lea eax, [esi + ebx]
push eax
push esi
push ebp
push 0x59
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4eca57
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x59
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], esi
lea ecx, [eax + ecx*4]
lea eax, [esi + ebx]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
inc esi
cmp esi, dword [esp + 0x18]
jl 0x4eca11
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x20]
push dword [esp + 0x48]
push ebx
call fcn.004e14a0
mov edx, dword [edi + 0x6c]
add esp, 8
cmp dword [edi + 0x70], edx
jg 0x4eca94
push dword [esp + 0x10]
push dword [esp + 0x1c]
push 0
push 0xa
push edi
call fcn.00490570
add esp, 0x14
mov edx, eax
jmp 0x4ecac7
mov esi, dword [esp + 0x18]
lea eax, [edx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [edx + edx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x10]
mov dword [eax + ecx*4], 0xa
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
jne 0x4ecb04
test edx, edx
jns 0x4ecad7
mov edx, dword [edi + 0x6c]
dec edx
mov eax, dword [edi + 0x68]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4ecaf6
push 0xfffffffffffffff4
push ebp
push eax
push edi
call fcn.004ed1b0
add esp, 0x10
jmp 0x4ecb04
test ebp, ebp
je 0x4ecb04
mov dword [eax + 0x10], ebp
mov byte [eax + 1], 0xf4
inc dword [ebp + 0xc]
mov edx, dword [esp + 0x5c]
cmp edx, 0xb
jne 0x4ecb12
mov edx, 2
mov eax, dword [edi + 0x6c]
test eax, eax
jle 0x4ecb24
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [ebx + 0x74]
test eax, eax
jne 0x4ecb2d
mov eax, ebx
cmp dword [esp + 0x28], 0
mov byte [eax + 0x15], 1
jne 0x4ecc07
mov ebx, dword [esp + 0x24]
mov ecx, dword [edi + 0x6c]
mov ebp, dword [esp + 0x1c]
lea edx, [ebx + 1]
cmp dword [edi + 0x70], ecx
jg 0x4ecb60
push 0
push edx
push ebp
push 5
push edi
call fcn.00490570
add esp, 0x14
jmp 0x4ecb8b
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 5
mov dword [eax + ecx*4 + 4], ebp
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x6c]
test ebx, ebx
jns 0x4ecb95
lea ebx, [edx - 1]
mov eax, dword [edi]
cmp byte [eax + 0x51], 0
je 0x4ecba4
mov eax, 0x530d04
jmp 0x4ecbad
mov eax, dword [edi + 0x68]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x4ecbd0
push 0
push 0
push ebp
push 0x74
push edi
call fcn.00490570
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
pop edi
pop esi
mov dword [eax + ecx*4 + 4], ebp
pop ebp
mov dword [eax + ecx*4], 0x74
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
pop ebx
add esp, 0x2c
ret
push dword [esp + 0x34]
call fcn.004e5850
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret