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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4736ef
sub esp, 0x70
mov edx, dword [esp + 0x74]
test edx, edx
sete bl
mov ebp, dword [esp + 0x78]
test ebp, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4731d5
movzx eax, byte [esp + 0x80]
test al, al
je 0x4731bd
movsd xmm0, qword [0x7506cc]
jmp 0x4731c0
xorps xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 1
add esp, 0x70
ret
mov ebx, dword [esp + 0x7c]
lea edi, [ebx + 0x15c]
cmp edi, 0x2b7
ja 0x4736bc
cmp ebp, 1
mov eax, edi
xchg edi, ebx
sete bl
xchg edi, ebx
mov ecx, ebx
seta bl
nop
and edi, 1
or ebx, edi
test bl, bl
je 0x473211
mov ebx, ebp
xor esi, esi
mov edi, 0x20
jmp 0x473219
mov ebx, ebp
mov esi, ebx
mov ebp, edx
xor edi, edi
mov dword [esp + 0x40], edi
cmp ebp, 0x10000
setae dl
test esi, esi
sete bl
xchg edi, ebx
seta bl
xchg edi, ebx
and ebx, edx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x473252
shr ebp, 0x10
mov edx, esi
shl esi, 0x10
or ebp, esi
shr edx, 0x10
mov ebx, dword [esp + 0x40]
lea edi, [ebx + 0x10]
jmp 0x473258
mov edx, esi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x38], edx
test edx, edx
seta bl
mov esi, edi
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, 0x100
setae dl
and edx, edi
or edx, ebx
test dl, dl
je 0x473291
shr ebp, 8
mov edx, dword [esp + 0x38]
mov ebx, edx
shl edx, 0x18
or ebp, edx
shr ebx, 8
lea edi, [esi + 8]
jmp 0x473297
mov edi, esi
mov ebx, dword [esp + 0x38]
test ebx, ebx
jne 0x4736e0
cmp ebp, 0x100
jae 0x4736d4
imul edx, ecx, 0x3526a
sar edx, 0x10
add edx, 0x43f
mov dword [esp + 0x64], edx
lea ebx, [0x6e4d48]
movzx ebx, byte [ebx + ebp]
lea ecx, [ebx + edi - 0x40]
neg ecx
mov dword [esp + 0x24], ecx
sub edx, ecx
mov dword [esp + 0x3c], edx
cmp ecx, 0x20
sbb ebp, ebp
mov dword [esp + 0x60], ebp
lea esi, [ecx - 0x20]
mov dword [esp + 0x5c], esi
cmp esi, 0x20
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb edx, edx
mov ebx, dword [esp + 0x78]
shl ebx, cl
and ebx, ebp
mov ecx, esi
mov ebp, dword [esp + 0x74]
mov esi, ebp
shr ebp, cl
and ebp, edx
or ebp, ebx
mov ecx, dword [esp + 0x5c]
mov edx, esi
shl esi, cl
and esi, edi
or ebp, esi
mov dword [esp + 0x5c], ebp
shl eax, 4
mov dword [esp + 0x58], eax
lea ebx, [0x8c5a00]
mov esi, dword [ebx + eax + 8]
mov edi, dword [ebx + eax + 0xc]
mov dword [esp + 4], ebp
mov ecx, dword [esp + 0x24]
shl edx, cl
mov eax, dword [esp + 0x60]
and edx, eax
mov dword [esp + 0x60], edx
mov dword [esp], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
call fcn.0046dbb0
mov eax, dword [esp + 0x64]
mov edx, eax
sar eax, 0x1f
mov ebx, dword [esp + 0x24]
mov ebp, ebx
sar ebx, 0x1f
sub edx, ebp
sbb eax, ebx
mov edx, dword [esp + 0x10]
mov ebx, edx
and edx, 0x1ff
cmp edx, 0x1ff
sete dl
mov ebp, dword [esp + 0x14]
and edx, 1
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
test dl, dl
je 0x4734d8
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ebx
mov edx, dword [esp + 0x60]
mov ecx, edx
add edx, esi
mov eax, dword [esp + 0x5c]
adc eax, edi
mov ebx, dword [esp + 0x5c]
cmp ebx, eax
seta al
sete bl
cmp edx, ecx
setb dl
and edx, ebx
or edx, eax
test dl, dl
jne 0x4733d5
mov eax, dword [esp + 0x54]
mov ebx, dword [esp + 0x50]
jmp 0x4734d8
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x58]
lea edx, [0x8c5a00]
mov ebx, dword [edx + eax]
mov eax, dword [edx + eax + 4]
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], edx
mov dword [esp], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
call fcn.0046dbb0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
add eax, ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x2c]
adc edx, ebx
cmp ebx, edx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp eax, ecx
setb cl
and ecx, ebp
or ebx, ecx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
test bl, bl
je 0x47344f
mov ebx, dword [esp + 0x50]
add ebx, 1
mov esi, dword [esp + 0x34]
adc esi, 0
jmp 0x473457
mov ebx, dword [esp + 0x50]
mov esi, dword [esp + 0x34]
mov edi, ebx
and ebx, 0x1ff
cmp ebx, 0x1ff
sete bl
and ebx, 1
test bl, bl
je 0x4734cc
mov dword [esp + 0x4c], eax
cmp edx, 0xffffffff
sete bl
cmp eax, 0xffffffff
sete al
and eax, ebx
test al, al
je 0x4734c8
mov eax, dword [esp + 0x60]
add ecx, eax
mov ebx, dword [esp + 0x5c]
adc ebp, ebx
cmp ebx, ebp
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp ecx, eax
setb al
and eax, ebp
or eax, ebx
test al, al
jne 0x4734b0
mov eax, dword [esp + 0x4c]
jmp 0x4734cc
xorps xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 0
add esp, 0x70
ret
mov eax, dword [esp + 0x4c]
mov ebp, esi
mov ebx, edi
mov esi, eax
mov edi, edx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebp
mov ecx, ebp
shr ecx, 0x1f
mov dword [esp + 0x60], ecx
mov edx, ecx
add ecx, 9
xor edx, 1
mov ebp, dword [esp + 0x3c]
sub ebp, edx
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x60]
add ebp, 9
mov ebp, 0
adc ebp, 0
cmp ebp, 1
sbb ebp, ebp
xor ebp, 0xffffffff
or ecx, ebp
mov dword [esp + 0x60], ecx
cmp ecx, 0x20
sbb ebp, ebp
mov dword [esp + 0x50], ebp
lea ebp, [ecx - 0x20]
mov dword [esp + 0x4c], ebp
cmp ebp, 0x20
sbb ebx, ebx
mov dword [esp + 0x48], ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb ebx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x3c]
sub ebx, edx
sbb eax, 0
mov dword [esp + 0x54], eax
test edi, edi
sete dl
mov byte [esp + 0x23], dl
test esi, esi
sete bl
mov esi, dword [esp + 0x30]
mov edi, esi
shr esi, cl
mov ecx, ebp
mov eax, dword [esp + 0x34]
mov ebp, eax
shl eax, cl
mov ecx, dword [esp + 0x4c]
shr ebp, cl
mov ecx, edi
mov edi, dword [esp + 0x50]
and esi, edi
mov edx, dword [esp + 0x44]
and eax, edx
or eax, esi
mov edx, dword [esp + 0x48]
and edx, ebp
or eax, edx
mov edx, ecx
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x34]
shr ebp, cl
and ebp, edi
movzx esi, byte [esp + 0x23]
and esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4735e4
test edx, 0x1ff
sete cl
and ecx, 1
test cl, cl
je 0x4735e0
mov ecx, eax
and eax, 3
cmp eax, 1
sete al
and eax, 1
test al, al
je 0x4735e6
xorps xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 0
add esp, 0x70
ret
mov ecx, eax
jmp 0x4735e6
mov ecx, eax
mov eax, ecx
and ecx, 1
add ecx, eax
adc ebp, 0
mov eax, ebp
shr ebp, 0x16
test ebp, ebp
seta dl
mov ebx, ecx
shr ecx, 1
mov ebp, eax
shl eax, 0x1f
or eax, ecx
mov ecx, ebp
shr ebp, 1
and edx, 1
test dl, dl
je 0x47362d
mov ebp, dword [esp + 0x5c]
add ebp, 1
mov eax, dword [esp + 0x54]
adc eax, 0
shr ebx, 2
mov edx, ecx
shl ecx, 0x1e
or ecx, ebx
shr edx, 2
jmp 0x473639
mov ecx, eax
mov edx, ebp
mov ebp, dword [esp + 0x5c]
mov eax, dword [esp + 0x54]
mov ebx, ebp
add ebp, 0xffffffff
adc eax, 0xffffffff
test eax, eax
seta al
xchg esi, ebx
sete bl
xchg esi, ebx
cmp ebp, 0x7fe
xchg ebp, ebx
setae bl
xchg ebp, ebx
and ebp, esi
or ebp, eax
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4736a4
shl ebx, 0x14
and edx, 0xfffff
or ebx, edx
movzx eax, byte [esp + 0x80]
test al, al
je 0x473681
or ebx, 0x80000000
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], ebx
movsd xmm0, qword [esp + 0x68]
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 1
add esp, 0x70
ret
xorps xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 0
add esp, 0x70
ret
xorps xmm0, xmm0
movsd qword [esp + 0x84], xmm0
mov byte [esp + 0x8c], 0
add esp, 0x70
ret
mov eax, ebp
mov ecx, 0x100
call fcn.00463160
mov esi, ebx
mov eax, ebp
mov ecx, 0x100
call fcn.00463230
nop
call fcn.00461cc0
jmp fcn.00473170