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

Disassembly:
push ebp
xor eax, eax
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x9c
mov dword [esp + 0x28], edx
xor edx, edx
mov dword [esp + eax + 0x70], edx
add eax, 4
cmp eax, 0x20
jb 0x4149d4
mov eax, dword [ebx + 4]
fild dword [ebx + 4]
fmul dword [0x44a200]
shl eax, 3
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fxch st(1)
fucomi st(1)
jp 0x414be0
jne 0x414be0
fstp st(0)
fstp st(0)
mov ecx, 0x120
call fcn.0040dcf0
mov ecx, 0x20
mov dword [esp + 0x30], eax
mov edi, edx
mov esi, eax
mov dword [esp + 0x38], edx
call fcn.0040dcf0
mov ecx, 0x13
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
call fcn.0040dcf0
mov dword [esp + 0x2c], eax
mov ebp, eax
mov eax, dword [ebx]
mov dword [esp + 0x40], edx
mov dword [esp + 0x18], edx
lea edx, [eax + 0xe]
xor eax, edx
test edx, eax
js 0x414cc0
cmp dword [esp + 0x24], edx
jl 0x414cd0
mov edx, 5
mov ecx, ebx
call fcn.00414570
mov dword [esp], 0x4481cc
mov dword [esp + 0x44], eax
call fcn.00438340
cmp byte [eax], 0
mov dword [esp + 0x48], eax
jne 0x414c1f
mov eax, dword [esp + 0x44]
lea ecx, [eax + 0x101]
xor eax, ecx
mov dword [esp + 0x4c], ecx
test ecx, eax
js 0x414cc0
mov ecx, ebx
mov edx, 5
call fcn.00414570
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
jne 0x414c1f
lea ecx, [eax + 1]
xor eax, ecx
mov dword [esp + 0x54], ecx
test ecx, eax
js 0x414cc0
mov ecx, ebx
mov edx, 4
call fcn.00414570
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
jne 0x414c1f
lea ecx, [eax + 4]
xor eax, ecx
mov dword [esp + 0x50], ecx
test ecx, eax
js 0x414cc0
fild dword [esp + 0x50]
lea eax, [ecx + ecx*2]
fmul dword [0x44a20c]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fxch st(1)
fucomi st(1)
jp 0x414b1e
je 0x414b3c
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0x44a204]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x414cc0
jmp 0x414b40
fstp st(0)
fstp st(0)
mov edx, dword [ebx]
lea ecx, [edx + eax]
xor edx, ecx
xor eax, ecx
test edx, eax
js 0x414cc0
mov dword [esp + 0x58], 0x10
xor edx, edx
cmp dword [esp + 0x24], ecx
jl 0x414d2c
mov dword [esp + 0x58], edi
mov edi, edx
mov dword [esp + 0x5c], esi
mov esi, 0x10
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x40]
jmp 0x414bba
test al, al
jne 0x414eb6
mov ecx, ebx
mov edx, 3
call fcn.00414570
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
jne 0x414d69
mov dword [ebp + esi*4 + 4], eax
lea eax, [edi + 1]
mov edi, eax
cmp eax, 0x13
je 0x414d7a
mov esi, dword [eax*4 + 0x449d40]
cmp esi, dword [esp + 0x2c]
mov edx, esi
setge al
shr edx, 0x1f
or eax, edx
cmp dword [esp + 0x50], edi
jg 0x414b80
test al, al
jne 0x414eb6
xor eax, eax
jmp 0x414ba1
fld st(0)
fabs
fxch st(2)
fsubrp st(1)
fabs
fmul dword [0x44a204]
fxch st(1)
fcompi st(1)
fstp st(0)
jae 0x414a0b
call fcn.004083d0
xor ebp, ebp
xor edi, edi
xor esi, esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040d7f0
sub esp, 8
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040d7f0
sub esp, 8
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.0040d7f0
sub esp, 8
mov eax, dword [esp + 0x18]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.0040d7f0
sub esp, 8
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
call fcn.0040d7f0
sub esp, 8
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.0040d7f0
sub esp, 8
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
lea esi, [esi]
call fcn.004083d0
jmp 0x414c1f
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x2d
mov dword [eax + 0x10], 0x449fc0
mov dword [eax + 4], 0
mov dword [esp + 8], 0x1f6
mov dword [esp + 4], str.nimz.nim
mov edx, str.NZError
mov dword [esp], str.getTreeInflateDynamic
call fcn.0040ada0
sub esp, 0xc
jmp 0x414c1f
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x2d
mov dword [eax + 0x10], 0x449fc0
mov dword [eax + 4], 0
mov dword [esp + 8], 0x204
jmp 0x414d0b
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
mov ebp, dword [esp + 0x60]
jmp 0x414c1f
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
add ecx, 4
mov ebp, dword [esp + 0x60]
call fcn.0040dbf0
lea ecx, [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040da70
sub esp, 8
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x70]
mov dword [esp + 0x88], 7
mov dword [esp + 0x8c], eax
call fcn.00413bc0
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414ddd
lea ecx, [esp + 0x70]
call fcn.00413ea0
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414c1f
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x40], esi
add ecx, eax
mov edx, eax
xor edx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x54]
xor edx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x5c], edx
lea edx, [ecx + 0x102]
mov ecx, eax
xor eax, edx
mov dword [esp + 0x64], edx
xor edx, 1
mov edi, ecx
mov dword [esp + 0x68], eax
mov eax, 0xfffffeff
sub eax, dword [esp + 0x44]
mov dword [esp + 0x54], eax
mov dword [esp + 0x44], ebp
mov dword [esp + 0x6c], edx
xor edx, edx
mov esi, edx
mov ecx, dword [esp + 0x5c]
test dword [esp + 0x58], ecx
js 0x414cb0
cmp esi, dword [esp + 0x4c]
jge 0x41522b
mov eax, dword [esp + 0x24]
mov ecx, ebx
lea edx, [esp + 0x70]
mov dword [esp], eax
call fcn.00414690
push ecx
mov ecx, dword [esp + 0x48]
cmp byte [ecx], 0
jne 0x414fcc
cmp eax, 0xf
jg 0x414edc
cmp esi, edi
jge 0x414f97
cmp esi, dword [esp + 0x30]
jge 0x4150c8
test esi, esi
js 0x4150c8
mov ecx, dword [esp + 0x38]
mov dword [ecx + esi*4 + 4], eax
lea eax, [esi + 1]
xor esi, eax
test eax, esi
js 0x414cb0
mov esi, eax
jmp 0x414e46
mov eax, dword [esp + 0x2c]
mov ebx, esi
mov edi, dword [esp + 0x58]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov dword [esp], ebx
sub eax, 1
mov dword [esp + 4], eax
call fcn.0040b140
jmp 0x414c1f
cmp eax, 0x10
je 0x414fdd
cmp eax, 0x11
je 0x4150ee
cmp eax, 0x12
jne 0x4153bf
mov edx, 7
mov ecx, ebx
call fcn.004147c0
mov edx, eax
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414fcc
lea eax, [edx + 0xb]
mov ecx, edx
xor ecx, eax
test eax, ecx
js 0x414cb0
lea ebp, [edx + 0xa]
xor eax, ebp
not eax
or eax, ebp
jns 0x414cb0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], ebx
xor edx, edx
add eax, esi
cmp edx, ebp
jg 0x4153b6
cmp esi, dword [esp + 0x4c]
je 0x4151bb
cmp esi, edi
jge 0x41518e
cmp esi, dword [esp + 0x30]
jge 0x4150c8
test esi, esi
js 0x4150c8
mov ebx, dword [esp + 0x38]
mov dword [ebx + esi*4 + 4], 0
lea ecx, [esi + 1]
xor esi, ecx
test ecx, esi
js 0x414cb0
lea ebx, [edx + 1]
xor edx, ebx
test ebx, edx
js 0x414cb0
add eax, 1
mov edx, ebx
mov esi, ecx
jmp 0x414f3c
mov ecx, esi
mov edx, esi
mov ebp, edi
sub ecx, edi
xor edx, ecx
xor ebp, ecx
not edx
or ebp, edx
jns 0x414cb0
cmp ecx, dword [esp + 0x34]
jge 0x4152b1
test ecx, ecx
js 0x4152b1
mov edx, dword [esp + 0x3c]
mov dword [edx + ecx*4 + 4], eax
jmp 0x414ea5
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
jmp 0x414c1f
test esi, esi
je 0x415501
mov edx, 2
mov ecx, ebx
call fcn.004147c0
mov ebp, eax
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414fcc
lea ecx, [ebp + 3]
mov eax, ecx
mov dword [esp + 0x60], ecx
xor eax, ebp
test ecx, eax
js 0x414cb0
mov ecx, dword [esp + 0x6c]
test dword [esp + 0x68], ecx
js 0x414cb0
cmp esi, dword [esp + 0x64]
jge 0x4154b9
lea ecx, [esi - 1]
mov eax, esi
xor eax, ecx
not eax
or eax, ecx
jns 0x414cb0
cmp dword [esp + 0x30], ecx
jle 0x415495
test ecx, ecx
js 0x415495
mov eax, dword [esp + 0x38]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x60]
add ebp, 2
xor eax, ebp
not eax
or eax, ebp
jns 0x414cb0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x60], ebx
xor edx, edx
add eax, esi
cmp edx, ebp
jg 0x41548c
cmp esi, dword [esp + 0x4c]
je 0x415440
cmp esi, edi
jge 0x41540b
test esi, esi
js 0x4150c8
cmp esi, dword [esp + 0x30]
jge 0x4150c8
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x50]
mov dword [ebx + esi*4 + 4], ecx
lea ecx, [esi + 1]
xor esi, ecx
test ecx, esi
js 0x414cb0
lea ebx, [edx + 1]
xor edx, ebx
test ebx, edx
js 0x414cb0
add eax, 1
mov edx, ebx
mov esi, ecx
jmp 0x415075
mov eax, dword [esp + 0x30]
mov ebx, esi
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov dword [esp], ebx
sub eax, 1
mov dword [esp + 4], eax
call fcn.0040b140
jmp 0x414c1f
mov edx, 3
mov ecx, ebx
call fcn.004147c0
mov edx, eax
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414fcc
lea eax, [edx + 3]
mov ecx, edx
xor ecx, eax
test eax, ecx
js 0x414cb0
lea ebp, [edx + 2]
xor eax, ebp
not eax
or eax, ebp
jns 0x414cb0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x50], ebx
xor edx, edx
add eax, esi
cmp edx, ebp
jg 0x4153b6
cmp esi, dword [esp + 0x4c]
je 0x41536a
cmp esi, edi
jge 0x415335
test esi, esi
js 0x4150c8
cmp esi, dword [esp + 0x30]
jge 0x4150c8
mov ebx, dword [esp + 0x38]
mov dword [ebx + esi*4 + 4], 0
lea ecx, [esi + 1]
xor esi, ecx
test ecx, esi
js 0x414cb0
lea ebx, [edx + 1]
xor edx, ebx
test ebx, edx
js 0x414cb0
add eax, 1
mov edx, ebx
mov esi, ecx
jmp 0x415133
mov ecx, esi
mov ebx, edi
xor ecx, eax
xor ebx, eax
not ecx
or ebx, ecx
jns 0x414cb0
cmp eax, dword [esp + 0x34]
jge 0x415207
test eax, eax
js 0x415207
mov ebx, dword [esp + 0x3c]
mov dword [ebx + eax*4 + 4], 0
jmp 0x414f74
mov ecx, 0x20
mov edx, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x24
mov dword [eax + 0x10], 0x449f00
mov dword [eax + 4], 0
mov dword [esp + 8], 0x238
jmp 0x414d0b
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp], eax
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
sub edx, 1
mov dword [esp + 4], edx
call fcn.0040b140
jmp 0x414c1f
cmp dword [esp + 0x30], 0x100
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
jle 0x415319
mov eax, dword [esp + 0x38]
cmp dword [eax + 0x404], 0
je 0x4152d9
add eax, 4
mov dword [esp + 4], 0xf
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.004142c0
push edx
push edx
mov eax, dword [esp + 0x48]
cmp byte [eax], 0
jne 0x414c1f
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4152d5
add eax, 4
mov edx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], 0xf
mov ecx, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.004142c0
push eax
push eax
jmp 0x414c1f
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x2c]
mov dword [esp], ecx
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
sub eax, 1
mov dword [esp + 4], eax
call fcn.0040b140
jmp 0x414c1f
xor edx, edx
jmp 0x41528f
mov ecx, 0x20
mov edx, 4
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x34
mov dword [eax + 0x10], 0x449e40
mov dword [eax + 4], 0
mov dword [esp + 8], 0x247
jmp 0x414d0b
mov eax, dword [esp + 0x30]
mov dword [esp], 0x100
sub eax, 1
mov dword [esp + 4], eax
call fcn.0040b140
jmp 0x414c1f
mov ecx, esi
mov ebx, edi
xor ecx, eax
xor ebx, eax
not ecx
or ebx, ecx
jns 0x414cb0
cmp eax, dword [esp + 0x34]
jge 0x415207
test eax, eax
js 0x415207
mov ebx, dword [esp + 0x3c]
mov dword [ebx + eax*4 + 4], 0
jmp 0x41516b
mov ecx, 0x20
mov edx, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x24
mov dword [eax + 0x10], 0x449f00
mov dword [eax + 4], 0
mov dword [esp + 8], 0x22e
jmp 0x414d0b
mov ebx, dword [esp + 0x50]
jmp 0x414e46
mov ecx, 0x20
mov edx, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x26
mov dword [eax + 0x10], 0x449e80
mov dword [eax + 4], 0
mov dword [esp + 8], 0x243
jmp 0x414d0b
mov ecx, esi
mov ebx, edi
xor ecx, eax
xor ebx, eax
not ecx
or ebx, ecx
jns 0x414cb0
cmp eax, dword [esp + 0x34]
jge 0x415207
test eax, eax
js 0x415207
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov dword [ebx + eax*4 + 4], ecx
jmp 0x4150a5
mov ecx, 0x20
mov edx, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x24
mov dword [eax + 0x10], 0x449f00
mov dword [eax + 4], 0
mov dword [esp + 8], 0x224
jmp 0x414d0b
mov ebx, dword [esp + 0x60]
jmp 0x414e46
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
mov dword [esp], ecx
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
sub eax, 1
mov dword [esp + 4], eax
call fcn.0040b140
jmp 0x414c1f
mov eax, esi
mov edx, esi
mov ecx, edi
sub eax, edi
xor edx, eax
xor ecx, eax
not edx
or ecx, edx
jns 0x414cb0
lea ecx, [eax - 1]
xor eax, ecx
not eax
or eax, ecx
jns 0x414cb0
test ecx, ecx
js 0x4152b1
cmp ecx, dword [esp + 0x34]
jge 0x4152b1
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + ecx*4 + 4]
mov dword [esp + 0x50], eax
jmp 0x415056
mov ecx, 0x20
mov edx, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
call fcn.0040a600
mov dword [eax], 0x448238
mov ecx, eax
mov dword [eax + 8], str.NZError
mov dword [eax + 0xc], 0x1f
mov dword [eax + 0x10], 0x449f80
mov dword [eax + 4], 0
mov dword [esp + 8], 0x21c
jmp 0x414d0b