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

Disassembly:
sub esp, 0xec
mov ecx, dword [0x8716b4]
mov edx, dword [ecx + 0x34]
and eax, 0xffff
imul eax, eax, 0x64
add eax, edx
mov edx, dword [0x738b8c]
push ebx
mov ebx, eax
mov eax, dword [edx + 0x46c]
push ebp
movsx ebp, word [ebx + 2]
imul ebp, ebp, 0x74
add ebp, eax
movsx eax, word [esp + 0xf8]
push esi
mov esi, eax
imul esi, esi, 0x54
push edi
mov edi, dword [ebp + 0x54]
mov ax, word [esi + edi + 4]
add esi, edi
or ecx, 0xffffffff
cmp ax, 1
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x38], 0x7f7fffff
mov byte [esp + 0x15], 0
mov byte [esp + 0x13], 0
jne 0x43171b
mov dword [esp + 0x28], 0
mov byte [esp + 0x13], al
jmp 0x431c53
cmp ax, 6
mov byte [esp + 0x14], 0
mov byte [esp + 0x17], 0
mov byte [esp + 0x16], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], 0
je 0x431742
cmp ax, 7
jne 0x431747
mov byte [esp + 0x14], 1
mov edx, dword [ebp + 0x50]
xor edi, edi
xor ecx, ecx
test edx, edx
mov dword [esp + 0x34], edi
jle 0x4317b6
xor eax, eax
jmp 0x431760
mov eax, dword [ebx + eax*4 + 0x28]
cmp eax, 0xffffffff
je 0x4317ae
mov ebx, dword [0x871740]
mov ebx, dword [ebx + 0x34]
and eax, 0xffff
imul eax, eax, 0x724
lea ebx, [eax + ebx + 0x12c]
movsx eax, di
mov edi, dword [ebx]
lea eax, [eax + eax*2]
lea eax, [esp + eax*4 + 0x9c]
mov dword [eax], edi
mov edi, dword [ebx + 4]
mov dword [eax + 4], edi
mov edi, dword [ebx + 8]
mov ebx, dword [esp + 0x2c]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x34]
inc edi
mov dword [esp + 0x34], edi
inc ecx
movsx eax, cx
cmp eax, edx
jl 0x431760
mov ax, word [esi + 8]
test di, di
sete byte [esp + 0x44]
or ecx, 0xffffffff
cmp ax, cx
je 0x4317f9
test ax, ax
jl 0x4317ec
cmp ax, 0x200
jge 0x4317ec
mov edx, dword [0x6b2358]
movsx ecx, ax
mov eax, dword [edx + ecx*4]
mov dword [esp + 0x30], eax
mov byte [esp + 0x17], 1
jmp 0x431860
mov eax, ecx
mov dword [esp + 0x30], eax
mov byte [esp + 0x17], 1
jmp 0x431860
mov eax, dword [esi + 0x44]
cmp eax, ecx
je 0x431817
push eax
lea ecx, [esp + 0x88]
call fcn.00432660
add esp, 4
mov byte [esp + 0x16], 1
jmp 0x431860
mov eax, dword [0x871734]
mov dl, byte [eax + 1]
test dl, dl
je 0x431860
mov eax, dword [0x8716a8]
mov dword [esp + 0x5c], eax
xor eax, 0x69746572
mov word [esp + 0x60], 0
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov byte [esp + 0x6c], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ecx
mov byte [esp + 0x6d], 1
jmp 0x431860
mov ebp, dword [esp + 0x1c]
fstp st(0)
lea ebx, [ebx]
mov al, byte [esp + 0x17]
test al, al
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0x7f7fffff
mov dword [esp + 0x40], 0
je 0x431921
mov ecx, dword [esp + 0x30]
xor esi, esi
cmp ecx, 0xffffffff
je 0x4318c9
mov edx, ecx
sar edx, 0x10
test cx, cx
jl 0x4318c9
mov edi, dword [0x851c30]
cmp cx, word [edi + 0x20]
jge 0x4318c9
movsx eax, word [edi + 0x22]
mov ebx, dword [edi + 0x34]
movsx ecx, cx
imul eax, ecx
mov cx, word [eax + ebx]
add eax, ebx
test cx, cx
je 0x4318c9
test dx, dx
je 0x4318c7
cmp cx, dx
jne 0x4318c9
mov esi, eax
xor eax, eax
test esi, esi
je 0x4318e1
mov cl, byte [esi + 3]
mov edx, 1
shl edx, cl
test dl, 3
je 0x4318e1
mov eax, dword [esi + 8]
or edi, 0xffffffff
xor esi, esi
test eax, eax
mov dword [esp + 0x18], edi
je 0x431917
mov eax, dword [eax + 0x1f4]
cmp eax, 0xffffffff
je 0x431917
mov edi, eax
mov eax, dword [0x871740]
mov ecx, dword [eax + 0x34]
mov esi, edi
and esi, 0xffff
imul esi, esi, 0x724
mov dword [esp + 0x18], edi
add esi, ecx
mov dword [esp + 0x30], 0xffffffff
jmp 0x431951
mov al, byte [esp + 0x16]
test al, al
je 0x43193e
lea edx, [esp + 0x84]
call fcn.004326e0
mov edi, dword [esp + 0x94]
jmp 0x43194b
lea eax, [esp + 0x5c]
call fcn.00436a80
mov edi, dword [esp + 0x70]
mov esi, eax
mov dword [esp + 0x18], edi
test esi, esi
je 0x431c4b
mov ebx, dword [esi + 0x18]
cmp ebx, 0xffffffff
je 0x431860
mov cx, word [esi + 4]
mov edx, dword [esp + 0x24]
cmp cx, word [edx + 6]
jne 0x431860
mov edx, dword [ebp + 0x50]
xor ecx, ecx
test edx, edx
jle 0x431998
mov ebp, dword [esp + 0x2c]
xor eax, eax
cmp edi, dword [ebp + eax*4 + 0x28]
je 0x431994
inc ecx
movsx eax, cx
cmp eax, edx
jl 0x431986
mov ebp, dword [esp + 0x1c]
movsx eax, cx
cmp eax, edx
jl 0x431860
mov eax, dword [esp + 0x44]
lea ecx, [esp + 0x48]
push ecx
lea edx, [esp + 0x58]
push edx
push eax
call fcn.00430400
fstp dword [esp + 0x58]
mov eax, dword [esp + 0x60]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4319d9
mov al, byte [esp + 0x14]
test al, al
jne 0x4319f8
mov byte [esp + 0x15], 1
jmp 0x431860
mov edx, dword [0x851c30]
fld dword [esp + 0x4c]
and eax, 0xffff
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0x34]
mov ecx, dword [eax + ecx*4 + 8]
mov dword [esp + 0x40], ecx
jmp 0x431a00
fld dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x24]
movsx eax, word [edx + 4]
cmp eax, 7
ja case.0x431a0d.1
jmp dword [eax*4 + 0x431cf8]
test ecx, ecx
je case.0x431a0d.1
mov cx, word [ecx + 0xb8]
mov dx, word [esi + 0x3e]
call fcn.0045be00
test al, al
je case.0x431a0d.1
jmp 0x431858
test ecx, ecx
je 0x431858
mov eax, dword [ecx + 0x11c]
cmp eax, 0xffffffff
je 0x431858
cmp dword [esi + 0x158], eax
jne 0x431858
mov al, byte [esi + 0x161]
test al, al
je case.0x431a0d.1
fadd dword [0x66c410]
jmp case.0x431a0d.1
cmp dword [esi + 0x158], 0xffffffff
je case.0x431a0d.1
jmp 0x431858
mov al, byte [esi + 0x1c]
test al, al
je case.0x431a0d.1
fadd dword [0x66c5ec]
mov al, byte [esp + 0x44]
test al, al
je 0x431abe
mov al, byte [esp + 0x14]
test al, al
jne 0x431abe
fld dword [esp + 0x4c]
fcomp dword [0x66c52c]
fnstsw ax
test ah, 5
jp 0x431abe
fld dword [0x66c40c]
fld dword [ebp + 0x28]
fucompp
fnstsw ax
test ah, 0x44
jp 0x431abe
mov byte [esp + 0x15], 1
jmp 0x431858
mov eax, dword [esp + 0x34]
test ax, ax
jle 0x431b56
mov dword [esp + 0x20], 0x7f7fffff
lea ecx, [esp + 0xa4]
movzx edx, ax
lea ecx, [ecx]
fld dword [ecx - 8]
fsub dword [esi + 0x12c]
fld dword [ecx - 4]
fsub dword [esi + 0x130]
fld dword [ecx]
fsub dword [esi + 0x134]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fld dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x431b23
fstp dword [esp + 0x20]
jmp 0x431b25
fstp st(0)
add ecx, 0xc
dec edx
jne 0x431ae0
fld dword [esp + 0x20]
fcomp dword [0x66caac]
fnstsw ax
test ah, 5
jp 0x431b56
fld dword [esp + 0x20]
fsqrt
fsub dword [0x66c5ec]
fmul dword [0x66c4a4]
fsubr dword [0x66c410]
faddp st(1)
mov eax, dword [esi + 0x18]
mov ecx, dword [0x851c30]
mov edx, dword [ecx + 0x34]
mov ebp, dword [esp + 0x24]
and eax, 0xffff
lea eax, [eax + eax*2]
mov eax, dword [edx + eax*4 + 8]
mov di, word [eax + 0xbe]
xor edx, edx
or esi, 0xffffffff
xor bl, bl
xor eax, eax
movsx ecx, ax
mov cx, word [ebp + ecx*2 + 0x18]
cmp cx, 0xffff
je 0x431bb5
cmp cx, di
je 0x431bca
test cx, cx
jne 0x431ba0
mov esi, eax
mov bl, 1
jmp 0x431bb5
cmp di, 0x64
jge 0x431bb5
cmp cx, 0x64
jge 0x431bb5
movsx ecx, dx
mov word [esp + ecx*2 + 0x78], ax
inc edx
inc eax
cmp ax, 6
jl 0x431b82
test bl, bl
je 0x431bd6
fadd dword [0x66c5d8]
mov ecx, esi
jmp 0x431c16
fadd dword [0x66c5d8]
mov esi, eax
mov ecx, esi
jmp 0x431c16
test dx, dx
jle 0x431854
cmp dx, 1
jne 0x431beb
mov ecx, dword [esp + 0x78]
jmp 0x431c16
mov eax, dword [0x70ba18]
imul eax, eax, 0x19660d
add eax, 0x3c6ef35f
movsx ecx, dx
mov edx, eax
shr edx, 0x10
imul ecx, edx
shr ecx, 0x10
mov dword [0x70ba18], eax
movsx eax, cx
mov cx, word [esp + eax*2 + 0x78]
fcom dword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x431854
mov edx, dword [esp + 0x18]
fstp dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], ecx
mov byte [esp + 0x13], 1
jmp 0x431860
mov al, byte [esp + 0x13]
test al, al
je 0x431c90
movsx ecx, word [esp + 0x100]
mov eax, dword [esp + 0x2c]
mov esi, dword [eax + 0x14]
mov edx, 1
shl edx, cl
or esi, edx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x14], esi
mov si, word [esp + 0x28]
mov dword [eax + ecx*4 + 0x28], edx
mov word [eax + ecx*2 + 0x18], si
mov eax, dword [esp + 0x104]
test eax, eax
je 0x431ca8
cmp edx, 0xffffffff
jmp 0x431ca3
mov eax, dword [esp + 0x24]
test byte [eax + 2], 2
je 0x431ca8
mov eax, dword [esp + 0x108]
test eax, eax
je 0x431ca8
mov byte [eax], 1
mov al, byte [esp + 0x15]
test al, al
pop edi
pop esi
pop ebp
pop ebx
je 0x431cc2
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x431cc2
mov byte [eax], 1
mov ecx, dword [esp + 0x100]
test ecx, ecx
je 0x431ceb
fld dword [ecx]
fcomp dword [esp + 0x28]
fnstsw ax
mov al, byte [esp + 3]
test ah, 0x41
jne 0x431cef
mov edx, dword [esp + 0x28]
mov dword [ecx], edx
add esp, 0xec
ret
mov al, byte [esp + 3]
add esp, 0xec
ret