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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x84]
cmp eax, dword [ecx + 8]
jbe 0x47647c
sub esp, 0x104
mov eax, dword [esp + 0x108]
mov dword [esp], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 4], eax
call fcn.00476490
movzx eax, byte [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test al, al
je 0x47640e
mov dword [esp + 0x40], ebp
mov dword [esp + 0xf4], ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.004766d0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x14]
mov ebx, dword [esp + 0x10]
test dl, dl
je 0x47640e
mov edx, eax
neg eax
test ebx, ebx
je 0x475997
cmp byte [ecx], 0x2c
jne 0x475a00
mov ecx, dword [esp + 0xf4]
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x138], 0x7fffffff
mov dword [esp + 0x134], 0xffffffff
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov dword [esp + 0x8c], edx
mov dword [esp + 0x3c], eax
mov dword [esp], ecx
mov dword [esp + 4], ebx
call fcn.00476490
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
test cl, cl
je 0x4763aa
mov dword [esp + 0x88], ebp
mov dword [esp + 0x100], ebx
test edx, edx
je 0x475a4b
cmp byte [eax], 0x2c
jne 0x475a60
mov esi, dword [esp + 0x8c]
add esi, 0xfffff1f0
xchg esi, ebx
neg ebx
xchg esi, ebx
jmp 0x475a91
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004766d0
mov esi, dword [esp + 8]
movzx ecx, byte [esp + 0x14]
xchg esi, ebx
neg ebx
xchg esi, ebx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x100]
mov ebp, dword [esp + 0x88]
test cl, cl
je 0x4763aa
test edx, edx
jne 0x475aa8
mov edx, 0xf
lea eax, [0x4b98f8]
test edx, edx
jbe 0x476472
mov dword [esp + 0x8c], esi
movzx ecx, byte [eax]
cmp cl, 0x2c
je 0x475b28
cmp cl, 0x3b
je 0x475b28
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0xfc], eax
lea edi, [esp + 0xb8]
xor eax, eax
call fcn.0045f2eb
lea edi, [esp + 0xcc]
call fcn.0045f2eb
lea ecx, [edx - 1]
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
mov ebx, dword [esp + 0xfc]
add ecx, ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00476bc0
movzx ecx, byte [esp + 0x24]
mov byte [esp + 0x2b], cl
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
lea edi, [esp + 0xe0]
lea esi, [esp + 8]
call fcn.0045f7ce
lea edi, [esp + 0xb8]
lea esi, [esp + 0xe0]
call fcn.0045f7ce
movzx ecx, byte [esp + 0x2b]
test cl, cl
je 0x476346
test edx, edx
je 0x476346
cmp byte [ebx], 0x2c
jne 0x476346
lea eax, [edx - 1]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
add eax, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00476bc0
movzx eax, byte [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x84], ecx
lea edi, [esp + 0xe0]
lea esi, [esp + 8]
call fcn.0045f7ce
lea edi, [esp + 0xcc]
lea esi, [esp + 0xe0]
call fcn.0045f7ce
test al, al
je 0x4762e2
mov eax, dword [esp + 0x84]
test eax, eax
jne 0x4762e2
mov eax, dword [esp + 0x118]
add eax, 0x1ad9c900
mov edx, dword [esp + 0x11c]
adc edx, 0x7ffffffe
mov dword [esp + 4], edx
mov dword [esp], eax
mov byte [esp + 8], 0
call fcn.00474600
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x80], eax
mov edx, ecx
add ecx, 0xd116ebf
adc eax, 0x44
mov ebp, eax
shr eax, 1
mov esi, 0xa3d70a3e
mov edi, edx
mul esi
shr edx, 7
mov dword [esp + 0x7c], edx
imul eax, edx, 0x190
sub ebp, eax
mov eax, ebp
mov ebx, 0xa3d70a
mul ebx
mov dword [esp + 0x78], eax
mov ebx, ecx
shr ecx, 1
mov eax, ecx
mov ecx, edx
mul esi
shr edx, 7
mov dword [esp + 0x74], edx
imul eax, edx, 0x190
sub ebx, eax
lea eax, [ebp + ebp*2]
shl eax, 5
add eax, ebx
shr eax, 1
mov ebx, edx
mul esi
shr edx, 7
mov dword [esp + 0x70], edx
add ebx, 0
mov ebp, dword [esp + 0x78]
add ebp, ebx
add edx, ebp
mov dword [esp + 0x4c], edx
mov eax, 0x190
mul edx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], eax
mov eax, 0x23ab1
mov esi, dword [esp + 0x4c]
mul esi
mov dword [esp + 0x64], edx
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x74]
add esi, 0
mov esi, dword [esp + 0x7c]
adc esi, 0
mov edx, dword [esp + 0x78]
add edx, ebx
adc ecx, esi
mov edx, dword [esp + 0x70]
add edx, ebp
adc ecx, 0
mov dword [esp + 0xb4], ecx
imul edx, ecx, 0x190
mov ebx, dword [esp + 0x6c]
add edx, ebx
mov ebx, dword [esp + 0x68]
sub edi, ebx
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x80]
sbb ebx, edx
mov dword [esp + 0x80], ebx
add edi, 0xd116ebf
adc ebx, 0x44
mov dword [esp + 0xb0], ebx
shr ebx, 1
mov eax, ebx
mov ebp, 0xa3d70a3e
mul ebp
shr edx, 5
mov dword [esp + 0x78], edx
imul eax, edx, 0x64
mov ecx, dword [esp + 0xb0]
sub ecx, eax
mov eax, ecx
mov esi, 0x28f5c28
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
mov esi, edi
shr edi, 1
mov eax, ebp
mul edi
shr edx, 5
mov dword [esp + 0x6c], edx
imul eax, edx, 0x64
sub esi, eax
lea eax, [ecx + ecx*2]
shl eax, 5
add eax, esi
shr eax, 1
mov ecx, edx
mul ebp
shr edx, 5
add ecx, 0
mov ebp, dword [esp + 0x70]
mov esi, ebp
add ebp, ecx
mov edi, edx
add edx, ebp
mov dword [esp + 0x4c], edx
mov eax, 0x64
mul edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x68], eax
mov eax, 0x8eac
mov ebx, dword [esp + 0x4c]
mul ebx
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], eax
mov ebx, dword [esp + 0x6c]
add ebx, 0
mov ebx, dword [esp + 0x78]
adc ebx, 0
add esi, ecx
mov ecx, dword [esp + 0x74]
adc ecx, ebx
add edi, ebp
adc ecx, 0
mov dword [esp + 0xb0], ecx
imul ebx, ecx, 0x64
mov ebp, dword [esp + 0x70]
add ebx, ebp
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x68]
sub ebp, esi
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0x80]
sbb esi, ebx
mov dword [esp + 0x80], esi
mov ebx, ebp
add ebp, 0xd116ebf
adc esi, 0x44
mov dword [esp + 0xa4], esi
shr ebp, 2
shl esi, 0x1e
or esi, ebp
mov dword [esp + 0x78], esi
mov ebp, eax
mov eax, 0x5b5
mul esi
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], eax
shl esi, 2
mov dword [esp + 0x6c], esi
sub ebx, esi
mov dword [esp + 0x68], ebx
add ebx, 0xd116ebf
mov eax, 0x16d
mul ebx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x58]
add ebx, ebp
mov dword [esp + 0x98], ebx
mov edx, dword [esp + 0x70]
add edx, ebx
mov dword [esp + 0x94], edx
add eax, edx
mov dword [esp + 0x90], eax
mov eax, 0x15180
mov edx, dword [esp + 0x90]
mul edx
mov dword [esp + 0x90], edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x11c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x118]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x15180
call fcn.0045a3d0
mov eax, dword [esp + 0x38]
imul eax, eax, 0x15180
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
add edx, ecx
mov dword [esp + 0x2c], edx
adc ebx, eax
mov dword [esp + 0x30], ebx
mov eax, dword [esp + 0xb4]
imul eax, eax, 0x23ab1
mov ecx, dword [esp + 0x64]
add eax, ecx
mov ecx, dword [esp + 0xb0]
imul ecx, ecx, 0x8eac
mov ebp, dword [esp + 0xac]
add ecx, ebp
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0xa8]
add ebp, esi
adc ecx, eax
mov eax, dword [esp + 0xa4]
shr eax, 2
mov ebp, eax
shl eax, 2
mov esi, dword [esp + 0x78]
shr esi, 0x1e
or esi, eax
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
sub eax, edi
mov eax, dword [esp + 0x80]
sbb eax, esi
mov esi, dword [esp + 0x68]
add esi, 0xd116ebf
adc eax, 0x44
imul ebp, ebp, 0x5b5
mov esi, dword [esp + 0x74]
add ebp, esi
mov esi, dword [esp + 0x70]
mov edi, dword [esp + 0x98]
add esi, edi
adc ebp, ecx
imul eax, eax, 0x16d
mov ecx, dword [esp + 0xa0]
add eax, ecx
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x94]
add ecx, esi
adc eax, ebp
imul eax, eax, 0x15180
mov ecx, dword [esp + 0x90]
add eax, ecx
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x5c]
add ecx, 0xe5263700
mov dword [esp + 0x78], ecx
adc eax, 0x80000001
mov dword [esp + 0x60], eax
nop
mov edi, dword [esp + 0x34]
mov dword [esp], edi
lea edi, [esp + 4]
lea esi, [esp + 0xb8]
call fcn.0045f7ce
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
call fcn.00477390
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edi, [esp + 4]
lea esi, [esp + 0xcc]
call fcn.0045f7ce
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x18], ecx
call fcn.00477390
mov eax, dword [esp + 0x84]
mov ecx, eax
sar eax, 0x1f
mov edx, dword [esp + 0x1c]
mov ebx, edx
sar edx, 0x1f
cmp edx, eax
xchg ebp, ebx
setl bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
cmp ebx, ecx
xchg edi, ebx
setb bl
xchg edi, ebx
and edi, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4760b8
mov esi, dword [esp + 0x8c]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0xf4]
mov dword [esp + 0xf8], esi
mov esi, dword [esp + 0x100]
mov dword [esp + 0xf4], esi
mov esi, dword [esp + 0x8c]
jmp 0x4760fa
mov ecx, ebx
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xf8], ebx
mov ebx, dword [esp + 0x84]
mov ebx, edx
mov edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x44], ebx
xchg ebp, eax
mov byte [esp + 0x2a], al
xchg ebp, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], edi
mov ebp, dword [esp + 0x30]
cmp edx, ebp
xchg esi, ebx
setg bl
xchg esi, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
mov edx, dword [esp + 0x2c]
cmp edx, ebx
setb bl
and ebx, edi
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
jne 0x476260
cmp eax, ebp
setl bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp edx, ecx
setae dl
and edx, ebp
or edx, ebx
test dl, dl
je 0x4761d2
mov edx, dword [esp + 0x5c]
add ecx, edx
mov ebx, dword [esp + 0x7c]
adc eax, ebx
add ecx, 0xe5263700
adc eax, 0x80000001
add edx, 0xe7076a80
adc ebx, 0x80000001
mov ebp, dword [esp + 0xf4]
mov dword [esp + 0x120], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 0x124], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x128], ebp
mov dword [esp + 0x130], eax
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
add ebx, edx
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x48]
adc esi, ebp
add ebx, 0xe5263700
adc esi, 0x80000001
add edx, ecx
adc ebp, eax
add edx, 0xe5263700
adc ebp, 0x80000001
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x128], eax
mov dword [esp + 0x130], esi
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x138], ebp
mov dword [esp + 0x134], edx
movzx eax, byte [esp + 0x2a]
xor eax, 1
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x44]
add eax, ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
adc ecx, edx
add eax, 0xe5263700
adc ecx, 0x80000001
mov edx, dword [esp + 0xf4]
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x124], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x128], edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x138], ecx
mov dword [esp + 0x134], eax
movzx eax, byte [esp + 0x2a]
mov byte [esp + 0x13c], al
mov byte [esp + 0x13d], 1
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x134], 0
mov byte [esp + 0x13c], 0
mov byte [esp + 0x13d], 0
add esp, 0x104
ret
xor eax, eax
mov ecx, eax
call fcn.0045f180
nop
call fcn.0045dcf0
jmp fcn.00475900