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

Disassembly:
push 0xffffffffffffffff
push 0x69f8e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push ebp
push esi
mov esi, dword [esp + 0x80]
mov ebx, ecx
mov ecx, esi
mov dword [esp + 0x2c], ebx
call fcn.00470c60
mov ecx, esi
call fcn.005758b0
mov ecx, ebx
call fcn.00474530
test al, al
jne 0x475865
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
add esp, 0x5c
ret 0x1c
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
push eax
push ecx
mov ecx, ebx
call fcn.00475080
lea ecx, [esp + 0x3c]
mov esi, eax
call fcn.00470f30
and esi, 0xffff
xor edx, edx
mov eax, esi
xor ebp, ebp
div dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x64], ebp
mov eax, dword [eax + edx*4]
cmp eax, ebp
je 0x4758a9
cmp dword [eax + 4], esi
je 0x4758ab
mov eax, dword [eax]
cmp eax, ebp
jne 0x47589e
xor eax, eax
cmp eax, ebp
jne 0x4758d6
lea ecx, [esp + 0x3c]
mov dword [esp + 0x64], 0xffffffff
call fcn.00470ff0
pop esi
pop ebp
xor al, al
pop ebx
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
add esp, 0x5c
ret 0x1c
mov eax, dword [eax + 8]
mov edx, dword [ebx + 0x1c]
fld dword [esp + 0x74]
fmul dword [ebx + 0x30]
mov ecx, dword [ebx + 0x18]
push edi
mov edi, dword [eax + 4]
mov dword [esp + 0x2c], eax
add edi, edx
cmp ecx, 0x1002
fstp dword [esp + 0x18]
jne 0x47590b
fld dword [esp + 0x78]
fmul dword [ebx + 0x34]
fsubr dword [esp + 0x74]
fstp dword [esp + 0x74]
xor esi, esi
cmp word [eax], bp
mov byte [esp + 0x80], 0
mov dword [esp + 0x1c], 0x3f800000
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x7c], ebp
jbe 0x475d04
mov bl, byte [esp + 0x88]
mov ecx, esi
and ecx, 0xffff
mov al, byte [ecx + edi]
movsx ecx, al
dec ecx
cmp ecx, 0xd
ja case.0x475959.11
jmp dword [ecx*4 + 0x475dd4]
mov byte [esp + 0x80], 1
jmp 0x475cdf
lea ecx, [esp + 0x40]
call fcn.00471090
cmp eax, 2
jl 0x47598e
lea ecx, [esp + 0x40]
push 1
push ecx
mov ecx, dword [esp + 0x8c]
call fcn.00470d20
lea ecx, [esp + 0x40]
call fcn.00471050
mov byte [esp + 0x80], 0
jmp case.0x475959.5
inc esi
mov edx, esi
and edx, 0xffff
xor eax, eax
mov al, byte [edx + edi]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul dword [esp + 0x1c]
fstp dword [esp + 0x1c]
jmp case.0x475959.5
inc esi
mov ecx, esi
and ecx, 0xffff
xor edx, edx
mov dl, byte [ecx + edi]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fdivr dword [esp + 0x1c]
fstp dword [esp + 0x1c]
jmp case.0x475959.5
add esi, 2
jmp case.0x475b49.5
inc esi
mov eax, esi
and eax, 0xffff
inc esi
mov ecx, esi
mov bl, byte [eax + edi]
and ecx, 0xffff
movsx edx, bl
mov al, byte [ecx + edi]
mov cl, byte [esp + 0x88]
inc esi
add ebp, edx
test cl, cl
mov byte [esp + 0x78], al
mov dword [esp + 0x14], ebp
je 0x475a31
mov ecx, dword [esp + 0x7c]
movsx eax, al
sub ecx, eax
mov dword [esp + 0x7c], ecx
jmp 0x475a38
movsx ecx, al
add dword [esp + 0x7c], ecx
fild dword [esp + 0x14]
mov al, byte [esp + 0x80]
test al, al
fmul dword [esp + 0x18]
fstp dword [esp + 0x10]
fild dword [esp + 0x7c]
fmul dword [esp + 0x18]
fstp dword [esp + 0x14]
je case.0x475b49.5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00471100
jmp case.0x475b49.5
inc esi
mov ecx, esi
and ecx, 0xffff
inc esi
mov edx, esi
mov bl, byte [ecx + edi]
and edx, 0xffff
inc esi
mov al, byte [edx + edi]
mov byte [esp + 0x78], al
test bl, bl
jne 0x475aa4
test al, al
je case.0x475b49.5
mov al, byte [esp + 0x78]
movsx ecx, bl
add ebp, ecx
mov cl, byte [esp + 0x88]
test cl, cl
mov dword [esp + 0x14], ebp
je 0x475ac1
movsx edx, al
sub dword [esp + 0x7c], edx
jmp 0x475ace
mov ecx, dword [esp + 0x7c]
movsx eax, al
add ecx, eax
mov dword [esp + 0x7c], ecx
fild dword [esp + 0x14]
mov al, byte [esp + 0x80]
test al, al
fmul dword [esp + 0x18]
fstp dword [esp + 0x10]
fild dword [esp + 0x7c]
fmul dword [esp + 0x18]
fstp dword [esp + 0x14]
je 0x475b04
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.00471100
mov eax, esi
and eax, 0xffff
inc esi
mov ecx, esi
mov bl, byte [eax + edi]
and ecx, 0xffff
inc esi
mov dl, byte [ecx + edi]
mov byte [esp + 0x78], dl
mov al, dl
jmp 0x475a94
add esi, 3
jmp case.0x475b49.5
inc esi
mov eax, esi
and eax, 0xffff
inc esi
mov al, byte [eax + edi]
movsx eax, al
add eax, 0xfffffffd
cmp eax, 6
ja case.0x475b49.5
jmp dword [eax*4 + 0x475e0c]
mov ecx, esi
and ecx, 0xffff
inc esi
mov edx, esi
mov bl, byte [ecx + edi]
and edx, 0xffff
mov al, byte [edx + edi]
mov byte [esp + 0x78], al
jmp case.0x475959.5
mov ecx, esi
and ecx, 0xffff
inc esi
mov edx, esi
mov bl, byte [ecx + edi]
and edx, 0xffff
inc esi
mov al, byte [edx + edi]
test bl, bl
mov byte [esp + 0x78], al
jne case.0x475b49.9
test al, al
je case.0x475b49.5
jmp case.0x475b49.9
cmp al, 0xf
jbe case.0x475959.5
mov cl, al
shr al, 4
and eax, 0xff
and cl, 0xf
mov dword [esp + 0x24], eax
mov byte [esp + 0x28], cl
fild dword [esp + 0x24]
fmul dword [esp + 0x1c]
call fcn.00658ed2
mov ecx, eax
mov eax, dword [esp + 0x28]
and eax, 0xff
cmp eax, 0xf
ja case.default.0x475bd8
jmp dword [eax*4 + 0x475e28]
mov eax, ecx
mov bl, cl
cdq
sub eax, edx
sar eax, 1
jmp 0x475c90
mov eax, ecx
mov byte [esp + 0x78], cl
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
jmp case.default.0x475bd8
xor bl, bl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
mov eax, ecx
mov byte [esp + 0x78], cl
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
neg ebx
jmp case.default.0x475bd8
mov bl, cl
mov byte [esp + 0x78], cl
neg bl
jmp case.default.0x475bd8
mov eax, ecx
mov bl, cl
cdq
sub eax, edx
neg bl
sar eax, 1
jmp 0x475c90
neg cl
mov bl, cl
mov byte [esp + 0x78], 0
jmp case.default.0x475bd8
mov bl, cl
neg bl
jmp 0x475c87
neg cl
mov bl, cl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ebx, eax
neg ebx
neg cl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
xor bl, bl
neg cl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
mov eax, ecx
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
neg cl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
mov bl, cl
neg cl
mov byte [esp + 0x78], cl
jmp case.default.0x475bd8
mov bl, cl
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
neg eax
mov byte [esp + 0x78], al
mov al, byte [esp + 0x88]
movsx edx, bl
add ebp, edx
test al, al
mov dword [esp + 0x14], ebp
je 0x475cb3
movsx eax, byte [esp + 0x78]
sub dword [esp + 0x7c], eax
jmp 0x475cbc
movsx ecx, byte [esp + 0x78]
add dword [esp + 0x7c], ecx
fild dword [esp + 0x14]
mov al, byte [esp + 0x80]
test al, al
fmul dword [esp + 0x18]
fstp dword [esp + 0x10]
fild dword [esp + 0x7c]
fmul dword [esp + 0x18]
fstp dword [esp + 0x14]
je case.0x475959.5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push edx
push eax
lea ecx, [esp + 0x48]
call fcn.00471100
inc esi
mov ecx, dword [esp + 0x2c]
cmp si, word [ecx]
jb 0x475941
mov ebx, dword [esp + 0x30]
lea ecx, [esp + 0x40]
call fcn.00471090
cmp eax, 2
jl 0x475d29
mov edi, dword [esp + 0x84]
lea edx, [esp + 0x40]
push 1
push edx
mov ecx, edi
call fcn.00470d20
jmp 0x475d30
mov edi, dword [esp + 0x84]
lea ecx, [esp + 0x40]
call fcn.00471050
lea eax, [esp + 0x34]
lea ecx, [esp + 0x38]
push eax
lea edx, [esp + 0x40]
push ecx
lea eax, [esp + 0x28]
push edx
push eax
push edi
mov ecx, ebx
call fcn.00476970
fld dword [esp + 0x20]
fcomp dword [0x6c8a88]
fnstsw ax
test ah, 0x40
jne 0x475d6e
fld dword [esp + 0x20]
fchs
jmp 0x475d74
fld dword [0x6c8a88]
fadd dword [esp + 0x70]
mov eax, dword [edi + 4]
xor esi, esi
test eax, eax
fstp dword [esp + 0x10]
jle 0x475da9
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x84]
push edi
push ebx
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + esi*4]
call fcn.00472430
mov eax, dword [ebp + 4]
inc esi
cmp esi, eax
jl 0x475d8d
lea ecx, [esp + 0x40]
mov dword [esp + 0x68], 0xffffffff
call fcn.00470ff0
mov ecx, dword [esp + 0x60]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
mov dword fs:[0], ecx
add esp, 0x5c
ret 0x1c