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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
sub esp, 0xa4
cmp dword [eax + 8], 0
push ebx
push esi
push edi
je 0x4024b3
cmp dword [eax + 0x14], 0
je 0x4024b3
mov ebx, dword [eax + 0x18]
test ebx, ebx
je 0x4024b3
mov eax, dword [edx + 8]
cmp eax, dword [edx]
jle 0x4024b3
mov eax, dword [edx + 0xc]
cmp eax, dword [edx + 4]
jle 0x4024b3
mov eax, dword [ecx + 8]
mov edx, dword [ecx]
cmp eax, edx
jle 0x4024b3
mov edi, dword [ecx + 0xc]
mov eax, dword [ecx + 4]
cmp edi, eax
jle 0x4024b3
test edx, edx
jl 0x4024b3
test eax, eax
jl 0x4024b3
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 0x14]
cmp dword [ecx + 8], esi
jg 0x4024b3
mov edx, dword [eax + 0x18]
cmp edi, edx
jg 0x4024b3
and dword [esp + 0x38], 0
and dword [esp + 0xa0], 0
xor eax, eax
lea edi, [esp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
lea edi, [esp + 0xa4]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x58], edx
mov eax, ecx
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0xac]
mov dword [esp + 0x54], esi
mov dword [esp + 0xa8], ebx
call fcn.00401b11
mov edi, dword [esp + 0xac]
add esp, 0xc
test edi, edi
jl 0x4024b3
mov eax, dword [esp + 0xa4]
test eax, eax
jl 0x4024b3
mov edx, dword [ebp + 8]
mov esi, dword [edx + 0x14]
mov ecx, dword [esp + 0xa8]
cmp ecx, esi
jg 0x4024b3
mov edx, dword [edx + 0x18]
cmp dword [esp + 0xac], edx
jg 0x4024b3
cmp ecx, edi
jle 0x4024b3
cmp dword [esp + 0xac], eax
jle 0x4024b3
cmp dword [esp + 0x38], 0
jl 0x4024b3
cmp dword [esp + 0x3c], 0
jl 0x4024b3
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0x14]
cmp dword [esp + 0x40], edx
jg 0x4024b3
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 0x18]
cmp dword [esp + 0x44], edx
jg 0x4024b3
mov edx, dword [esp + 0x38]
cmp dword [esp + 0x40], edx
jle 0x4024b3
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 0x3c]
jle 0x4024b3
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x24], ebx
jl 0x401f86
mov dword [esp + 0x24], edi
cmp eax, ebx
mov dword [esp + 0x28], ebx
jl 0x401f92
mov dword [esp + 0x28], eax
cmp esi, ecx
mov edi, esi
jl 0x401f9a
mov edi, ecx
cmp edi, ebx
jge 0x401fa4
mov dword [esp + 0x2c], ebx
jmp 0x401fae
cmp esi, ecx
jl 0x401faa
mov esi, ecx
mov dword [esp + 0x2c], esi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0xac]
cmp eax, edx
mov esi, eax
jl 0x401fc3
mov esi, edx
cmp esi, ebx
jge 0x401fcd
mov dword [esp + 0x30], ebx
jmp 0x401fd7
cmp eax, edx
jge 0x401fd3
mov edx, eax
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x38]
cmp eax, ebx
mov dword [esp + 0x88], ebx
jl 0x401fed
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x3c]
cmp eax, ebx
mov dword [esp + 0x8c], ebx
jl 0x402003
mov dword [esp + 0x8c], eax
mov esi, dword [ebp + 0x10]
mov eax, dword [esi + 0x14]
mov ecx, dword [esp + 0x40]
cmp eax, ecx
mov edx, eax
jl 0x402015
mov edx, ecx
cmp edx, ebx
jge 0x40201d
xor eax, eax
jmp 0x402023
cmp eax, ecx
jl 0x402023
mov eax, ecx
mov ecx, dword [esi + 0x18]
cmp ecx, dword [esp + 0x44]
mov edx, ecx
jl 0x402032
mov edx, dword [esp + 0x44]
cmp edx, ebx
jge 0x40203a
xor ecx, ecx
jmp 0x402044
cmp ecx, dword [esp + 0x44]
jl 0x402044
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
cmp dword [esp + 0x2c], edx
jle 0x4024b3
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x30], ebx
jle 0x4024b3
cmp eax, dword [esp + 0x88]
jle 0x4024b3
cmp ecx, dword [esp + 0x8c]
jle 0x4024b3
cmp dword [edi + 8], 0
je 0x4024b3
cmp dword [esi + 0x4c], 0
je 0x4024b3
sub eax, dword [esp + 0x88]
mov edx, dword [esp + 0x2c]
sub edx, dword [esp + 0x24]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x30]
mov esi, ecx
fidiv dword [esp + 0x70]
sub esi, dword [esp + 0x8c]
sub eax, ebx
mov dword [esp + 0x7c], esi
mov dword [esp + 0x1c], eax
push ecx
push ecx
fstp dword [esp + 0x88]
fild dword [esp + 0x84]
fidiv dword [esp + 0x24]
fstp dword [esp + 0x74]
fld dword [esp + 0x88]
fsub qword [0x42bc30]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00411660
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp + 0x50]
fld qword [0x42bc28]
fstp qword [esp]
call fcn.00411660
fld qword [esp + 0x50]
xor edi, edi
fcompp
pop ecx
inc edi
pop ecx
fnstsw ax
test ah, 5
jp 0x402133
mov dword [esp + 0x78], edi
jmp 0x402138
and dword [esp + 0x78], 0
fld dword [esp + 0x6c]
push ecx
fsub qword [0x42bc30]
push ecx
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp]
call fcn.00411660
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp qword [esp + 0x50]
fld qword [0x42bc28]
fstp qword [esp]
call fcn.00411660
fcomp qword [esp + 0x50]
pop ecx
pop ecx
fnstsw ax
test ah, 0x41
jne 0x402189
mov dword [esp + 0x74], edi
jmp 0x40218e
and dword [esp + 0x74], 0
cmp ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x20], eax
mov ecx, esi
jge 0x4024b3
and dword [esp + 0x1c], 0
mov dword [esp + 0x60], esi
jmp 0x4021b5
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x20], 0
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
jl 0x4024b3
test ecx, ecx
jl 0x4024b3
cmp dword [esp + 0x74], 0
je 0x4021db
mov ecx, dword [esp + 0x60]
jmp 0x4021ee
fild dword [esp + 0x1c]
fmul dword [esp + 0x6c]
call fcn.00426560
mov ecx, dword [esp + 0x7c]
sub ecx, eax
mov edx, dword [esi + 0x40]
sub edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
sub edx, ebx
imul edx, dword [esi + 0x44]
add edx, dword [esi + 0x4c]
mov dword [esp + 0x10], ecx
lea esi, [edx + eax*4]
mov edx, dword [edi + 0x40]
sub edx, ecx
sub edx, dword [esp + 0x8c]
imul edx, dword [edi + 0x44]
add edx, dword [edi + 0x4c]
cmp eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x88]
lea edi, [edx + edi*4]
mov dword [esp + 0x98], edi
jge 0x402495
mov eax, dword [esp + 0x70]
and dword [esp + 0x50], 0
mov dword [esp + 0x54], edi
mov dword [esp + 0x84], eax
jmp 0x402254
mov edi, dword [esp + 0x98]
cmp dword [esp + 0x78], 0
je 0x402261
mov eax, dword [esp + 0x54]
jmp 0x402274
fild dword [esp + 0x50]
fmul dword [esp + 0x80]
call fcn.00426560
lea eax, [edi + eax*4]
mov edi, dword [ebp + 0x14]
mov edi, dword [edi]
cmp edi, 2
mov cl, byte [eax + 2]
mov dl, byte [eax]
mov bl, byte [eax + 1]
mov al, byte [eax + 3]
mov byte [esp + 0x4a], cl
mov dword [esp + 0x34], edi
jne 0x4022a1
mov byte [esi], dl
mov byte [esi + 1], bl
mov byte [esi + 2], cl
mov byte [esi + 3], al
jmp 0x402478
test al, al
je 0x402478
cmp al, 0xff
jne 0x4022bd
mov byte [esi], dl
mov byte [esi + 1], bl
mov byte [esi + 2], cl
mov byte [esi + 3], al
jmp 0x402478
movzx edi, byte [esi + 1]
xor ecx, ecx
mov ch, byte [esi + 3]
mov cl, byte [esi + 2]
shl ecx, 8
or ecx, edi
movzx edi, byte [esi]
shl ecx, 8
or ecx, edi
mov dword [esp + 0xc], ecx
movzx ecx, al
movzx eax, byte [esp + 0x4a]
shl ecx, 8
or ecx, eax
shl ecx, 8
movzx eax, bl
or ecx, eax
movzx eax, dl
shl ecx, 8
or ecx, eax
mov dword [esp + 0x18], ecx
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x402468
cmp dl, 0xff
jne 0x402325
push 4
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00410a30
add esp, 0xc
jmp 0x402468
mov eax, dword [esp + 0x34]
sub eax, 0
je 0x402405
dec eax
je 0x402345
dec eax
jne 0x402468
mov dword [esp + 0xc], ecx
jmp 0x402468
movzx eax, byte [esp + 0xf]
movzx edi, dl
mov dword [esp + 0x58], eax
imul eax, edi
mov dword [esp + 0x68], eax
cdq
mov ebx, 0xff
idiv ebx
mov dword [esp + 0x34], edi
mov edx, eax
mov al, byte [esp + 0xf]
sub al, dl
add al, byte [esp + 0x1b]
mov byte [esp + 0x17], al
je 0x4023ff
movzx edx, byte [esp + 0xc]
movzx eax, al
shl eax, 8
mov dword [esp + 0x5c], eax
movzx eax, cl
imul eax, edi
mov edi, edx
imul edx, dword [esp + 0x68]
imul edi, dword [esp + 0x58]
add eax, edi
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x5c]
movzx edx, byte [esp + 0xd]
mov byte [esp + 0xc], al
movzx eax, ch
imul eax, dword [esp + 0x34]
mov ecx, edx
imul edx, dword [esp + 0x68]
imul ecx, dword [esp + 0x58]
add eax, ecx
shl eax, 8
sub eax, edx
cdq
idiv dword [esp + 0x5c]
movzx ecx, byte [esp + 0xe]
mov edx, ecx
imul ecx, dword [esp + 0x68]
imul edx, dword [esp + 0x58]
mov byte [esp + 0xd], al
movzx eax, byte [esp + 0x1a]
imul eax, dword [esp + 0x34]
add eax, edx
shl eax, 8
sub eax, ecx
cdq
idiv dword [esp + 0x5c]
mov byte [esp + 0xe], al
mov al, byte [esp + 0x17]
jmp 0x402464
movzx ebx, byte [esp + 0xc]
mov al, dl
not al
movzx edi, al
movzx eax, cl
imul ebx, edi
movzx edx, dl
imul eax, edx
add eax, ebx
sar eax, 8
mov byte [esp + 0xc], al
movzx eax, ch
movzx ecx, byte [esp + 0xd]
imul eax, edx
imul ecx, edi
add eax, ecx
movzx ecx, byte [esp + 0xe]
sar eax, 8
imul ecx, edi
mov byte [esp + 0xd], al
movzx eax, byte [esp + 0x1a]
imul eax, edx
add eax, ecx
sar eax, 8
mov byte [esp + 0xe], al
mov al, byte [esp + 0x1b]
cmp al, byte [esp + 0xf]
ja 0x402464
mov al, byte [esp + 0xf]
mov byte [esp + 0xf], al
push 4
lea eax, [esp + 0x10]
push eax
push esi
call fcn.00410a30
add esp, 0xc
add dword [esp + 0x54], 4
add esi, 4
inc dword [esp + 0x50]
dec dword [esp + 0x84]
jne 0x40224d
mov ecx, dword [esp + 0x10]
inc dword [esp + 0x64]
dec dword [esp + 0x60]
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x64]
dec dword [esp + 0x20]
cmp eax, dword [esp + 0x30]
jl 0x4021b1
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x10