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

Disassembly:
sub esp, 0x80
push ebx
push ebp
push esi
push edi
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x14], edi
mov dword [esp + 0x20], ebx
lea esi, [edi + 0xc3c]
mov ecx, esi
call fcn.0040a270
test eax, eax
jle 0x4118f2
push ebx
mov ecx, esi
call fcn.0040a280
mov esi, eax
cmp dword [esi + 0x1886], 2
jne 0x4118d8
mov eax, dword [esi + 0x3ed]
mov cl, byte [eax + 8]
test cl, cl
je 0x4116cb
mov eax, dword [esi + 0x1975]
cmp ebx, 3
jl 0x4118d8
cmp eax, 1
je 0x4118d8
cmp eax, 5
je 0x4118d8
mov ecx, esi
call fcn.004be320
cmp eax, 0xffffffff
jne 0x4118d8
mov ecx, dword [esi + 0x3ed]
call fcn.00433120
lea ecx, [esp + 0x78]
push esi
push ecx
mov ecx, edi
call fcn.0040fa60
sub esp, 0xc
mov dword [esp + 0x28], eax
mov edx, eax
mov eax, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
mov edi, dword [edx]
push 2
mov dword [ecx], eax
mov eax, dword [esp + 0x30]
mov ebp, dword [edx + 4]
mov eax, dword [eax + 4]
mov ebx, dword [edx + 8]
mov edx, dword [esi]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, esi
call dword [edx + 0x1c]
sub esp, 0xc
mov edx, dword [esi]
mov eax, esp
mov ecx, esi
push 0xffffffffffffffff
push 8
mov dword [eax], edi
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
call dword [edx + 0x1c]
lea ecx, [esi + 0xf9]
sub esp, 0xc
mov edx, esp
mov eax, dword [ecx]
push 0xffffffffffffffff
mov dword [edx], eax
push 1
mov eax, dword [ecx + 4]
push 0
mov dword [edx + 4], eax
push 0x14
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov ecx, dword [esi + 0x3ed]
call fcn.00433030
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], 0
lea esi, [edx + 0xb94]
mov ecx, esi
call fcn.0040a270
test eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
jle 0x41180e
jmp 0x411784
mov eax, dword [esp + 0x1c]
cmp eax, 1
jle 0x41180e
mov al, byte [esp + 0x13]
test al, al
jne 0x41180e
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.0040a280
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x24]
test al, al
jne 0x4117f9
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
mov byte [esp + 0x17], 1
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 2
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
push edx
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 8
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
mov ecx, eax
call dword [edx + 0x1c]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jl 0x411780
mov edx, dword [esp + 0x14]
mov byte [esp + 0x13], 0
lea esi, [edx + 0xe88]
mov ecx, esi
call fcn.0040a270
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], 0
call fcn.0040a270
test eax, eax
jle 0x4118d0
cmp dword [esp + 0x1c], 1
jle 0x4118d0
mov al, byte [esp + 0x13]
test al, al
jne 0x4118d0
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.0040a280
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x24]
test al, al
jne 0x4118b6
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
mov byte [esp + 0x17], 1
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 2
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
push edx
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 8
mov dword [ecx], edi
mov dword [ecx + 4], ebp
mov dword [ecx + 8], ebx
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
mov ecx, esi
inc edx
mov dword [esp + 0x18], edx
call fcn.0040a270
cmp dword [esp + 0x18], eax
jl 0x41183f
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
lea esi, [edi + 0xc3c]
inc ebx
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.0040a270
cmp ebx, eax
jl 0x41166b
lea esi, [edi + 0x45c]
xor ebx, ebx
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.0040a270
test eax, eax
jle 0x411e0f
push ebx
mov ecx, esi
call fcn.0040a280
mov esi, eax
mov ecx, esi
call fcn.004be300
cmp eax, 0xffffffff
jne 0x411df1
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x24]
test al, al
jne 0x411df1
mov eax, dword [esi + 0x3ed]
mov cl, byte [eax + 8]
test cl, cl
jne 0x411df1
cmp dword [esi + 0x1886], 2
jne 0x411df1
lea ecx, [esp + 0x84]
push esi
push ecx
mov ecx, edi
call fcn.0040fa60
mov edx, eax
sub esp, 0xc
mov ecx, esp
mov edi, dword [edx]
mov ebx, dword [edx + 4]
mov ebp, dword [edx + 8]
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x8c], ebp
mov dword [ecx + 4], edx
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004c9990
test al, al
je 0x411be4
sub esp, 0xc
mov edx, dword [esi]
mov eax, esp
mov ecx, esi
push 0xffffffffffffffff
push 2
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
call dword [edx + 0x1c]
sub esp, 0xc
mov dword [esi + 0x1886], 4
mov ecx, esp
push 0xffffffffffffffff
push 1
mov dword [ecx], edi
sub esp, 0xc
mov edx, esp
mov dword [ecx + 4], ebx
push 0x96
push 5
mov dword [ecx + 8], ebp
mov ecx, dword [esi + 0x3ed]
mov dword [edx], edi
mov dword [edx + 4], ebx
mov dword [edx + 8], ebp
call fcn.004330c0
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
lea ecx, [eax + 0xa98]
call fcn.0040a270
test eax, eax
jle 0x411ae6
cmp dword [esp + 0x1c], 4
jge 0x411ae6
lea ecx, [esi + 0xf9]
mov edx, dword [esi + 0xf9]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
push edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x48], ecx
lea ecx, [eax + 0xa98]
call fcn.0040a280
add eax, 0xf9
mov ecx, dword [eax]
mov dword [esp + 0x30], ecx
mov edx, dword [eax + 4]
fld dword [esp + 0x30]
mov eax, dword [eax + 8]
mov dword [esp + 0x34], edx
fsub dword [esp + 0x3c]
mov dword [esp + 0x38], eax
fld dword [esp + 0x38]
fsub dword [esp + 0x44]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x4f0514]
fnstsw ax
test ah, 0x41
je 0x411ac4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc eax
push ecx
mov dword [esp + 0x20], eax
lea ecx, [edx + 0xa98]
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 2
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
lea ecx, [edx + 0xa98]
call fcn.0040a270
cmp dword [esp + 0x18], eax
jl 0x411a0c
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0
lea ecx, [eax + 0x4b0]
call fcn.0040a270
test eax, eax
jle 0x411ded
cmp dword [esp + 0x1c], 4
jge 0x411ded
lea ecx, [esi + 0xf9]
mov edx, dword [esi + 0xf9]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 4]
push edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x60], ecx
lea ecx, [eax + 0x4b0]
call fcn.0040a280
add eax, 0xf9
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov edx, dword [eax + 4]
fld dword [esp + 0x48]
mov eax, dword [eax + 8]
mov dword [esp + 0x4c], edx
fsub dword [esp + 0x54]
mov dword [esp + 0x50], eax
fld dword [esp + 0x50]
fsub dword [esp + 0x5c]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x4f0514]
fnstsw ax
test ah, 0x41
je 0x411bbd
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
inc eax
push ecx
mov dword [esp + 0x20], eax
lea ecx, [edx + 0x4b0]
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 2
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x18]
inc edx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
lea ecx, [edx + 0x4b0]
call fcn.0040a270
cmp dword [esp + 0x18], eax
jl 0x411b05
jmp 0x411ded
mov ecx, dword [esp + 0x14]
push 0
push esi
call fcn.004112a0
test eax, eax
mov dword [esp + 0x1c], eax
je 0x411ded
xor ecx, ecx
mov cx, word [eax + 0x36b]
cmp ecx, 0x1a
je 0x411c13
cmp ecx, 0x21
jne 0x411cf2
mov dword [esi + 0x1886], 4
mov ebp, dword [eax]
lea eax, [esi + 0xf9]
sub esp, 0xc
mov ecx, esp
mov edx, dword [eax]
mov dword [ecx], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov eax, dword [eax + 8]
mov dword [ecx + 8], eax
mov ecx, esi
call fcn.004be0c0
mov edx, ebp
mov ebp, dword [esp + 0x28]
push eax
push 2
mov ecx, ebp
call dword [edx + 0x1c]
mov eax, dword [ebp + 0x3ed]
sub esp, 0xc
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
mov ecx, esp
push 0xffffffffffffffff
mov dword [esp + 0x38], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
mov dword [ecx], edx
push 0
mov dword [esp + 0x40], 0
mov edx, dword [esp + 0x40]
sub esp, 0xc
mov dword [ecx + 4], eax
mov ebp, dword [esp + 0xa0]
mov eax, esp
mov dword [ecx + 8], edx
mov ecx, esi
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
call fcn.004be0c0
mov ecx, dword [esp + 0x38]
push eax
push 1
call fcn.004330c0
sub esp, 0xc
mov ecx, dword [esi + 0x3ed]
mov edx, esp
mov dword [esp + 0x24], ecx
push 0xffffffffffffffff
push 2
mov dword [edx], edi
sub esp, 0xc
mov eax, esp
mov ecx, dword [esp + 0x3c]
mov dword [edx + 4], ebx
mov dword [edx + 8], ebp
mov dword [eax], edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ebp
call fcn.004be0c0
mov ecx, dword [esp + 0x38]
push eax
push 2
call fcn.004330c0
mov ecx, dword [esp + 0x14]
xor eax, eax
add ecx, 0x5ac
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
call fcn.0040a270
test eax, eax
jle 0x411ded
cmp dword [esp + 0x18], 4
jge 0x411ded
lea edx, [esi + 0xf9]
mov eax, dword [esi + 0xf9]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
push eax
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x18]
mov edx, dword [edx + 8]
add ecx, 0x5ac
mov dword [esp + 0x78], edx
call fcn.0040a280
add eax, 0xf9
mov edx, dword [eax]
mov dword [esp + 0x60], edx
mov ecx, dword [eax + 4]
fld dword [esp + 0x60]
mov edx, dword [eax + 8]
mov dword [esp + 0x64], ecx
fsub dword [esp + 0x6c]
mov dword [esp + 0x68], edx
fld dword [esp + 0x68]
fsub dword [esp + 0x74]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fcomp dword [0x4f0514]
fnstsw ax
test ah, 0x41
je 0x411dcb
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
inc eax
add ecx, 0x5ac
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
push eax
call fcn.0040a280
sub esp, 0xc
mov edx, dword [eax]
mov ecx, esp
push 0xffffffffffffffff
push 2
mov dword [ecx], edi
mov dword [ecx + 4], ebx
mov dword [ecx + 8], ebp
mov ecx, eax
call dword [edx + 0x1c]
mov edx, dword [esp + 0x1c]
inc edx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
lea ecx, [edx + 0x5ac]
call fcn.0040a270
cmp dword [esp + 0x1c], eax
jl 0x411d13
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x20]
lea esi, [edi + 0x45c]
inc ebx
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.0040a270
cmp ebx, eax
jl 0x41190d
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x80
ret