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

Disassembly:
mov ecx, dword [0x5b96c8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x474bed
sub esp, 0x60
mov edx, dword [esp + 0x64]
test edx, edx
sete bl
mov ebp, dword [esp + 0x68]
test ebp, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
je 0x474734
movzx eax, byte [esp + 0x70]
test al, al
je 0x474725
mov eax, 0x80000000
jmp 0x474727
xor eax, eax
mov dword [esp + 0x74], eax
mov byte [esp + 0x78], 1
add esp, 0x60
ret
mov ebx, dword [esp + 0x6c]
lea edi, [ebx + 0x15c]
cmp edi, 0x2b7
ja 0x474bc1
nop
cmp ebp, 1
sete al
seta cl
and eax, 1
or eax, ecx
test al, al
je 0x474766
xor ecx, ecx
mov esi, 0x20
jmp 0x47476c
mov ecx, ebp
mov ebp, edx
xor esi, esi
mov dword [esp + 0x5c], edi
test ecx, ecx
sete al
seta dl
cmp ebp, 0x10000
xchg edi, ebx
setae bl
xchg edi, ebx
and eax, edi
or edx, eax
test dl, dl
je 0x47479d
shr ebp, 0x10
mov edx, ecx
shl edx, 0x10
or ebp, edx
shr ecx, 0x10
add esi, 0x10
test ecx, ecx
seta dl
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebp, 0x100
setae al
and eax, edi
or eax, edx
test al, al
je 0x4747ca
shr ebp, 8
mov edx, ecx
shl edx, 0x18
or ebp, edx
shr ecx, 8
add esi, 8
test ecx, ecx
jne 0x474bde
cmp ebp, 0x100
jae 0x474bd2
imul eax, ebx, 0x3526a
sar eax, 0x10
add eax, 0xbf
mov dword [esp + 0x58], eax
sar eax, 0x1f
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0x5c]
shl ebx, 4
mov dword [esp + 0x5c], ebx
lea edi, [0x58dea0]
mov ecx, dword [edi + ebx + 8]
mov dword [esp + 0x50], ecx
mov ebx, dword [edi + ebx + 0xc]
mov dword [esp + 0x4c], ebx
lea edi, [0x4ea472]
movzx ebp, byte [edi + ebp]
lea ebp, [ebp + esi - 0x40]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x20], ebp
mov ecx, ebp
mov edi, dword [esp + 0x64]
shl edi, cl
mov eax, dword [esp + 0x68]
shl eax, cl
lea edx, [ecx - 0x20]
mov ecx, edx
mov esi, dword [esp + 0x64]
shl esi, cl
neg ecx
mov ebx, dword [esp + 0x64]
shr ebx, cl
sar ebp, 0x1f
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x20]
cmp ebp, 0x20
sbb ebp, ebp
and edi, ebp
mov dword [esp + 0x44], edi
and eax, ebp
cmp edx, 0x20
sbb edx, edx
and esi, edx
cmp ecx, 0x20
sbb edx, edx
and ebx, edx
or ebx, eax
or ebx, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 4], ebx
mov dword [esp], edi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 8], eax
call fcn.0046e3d0
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, edx
and edx, 0x3f
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x58]
mov ecx, ebx
mov ebx, dword [esp + 0x20]
sub edi, ebx
mov dword [esp + 0x38], edi
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x48]
sbb ebx, edi
mov dword [esp + 0x54], ebx
cmp eax, 0xffffffff
xchg edi, ebx
sete bl
xchg edi, ebx
cmp edx, 0x3f
sete dl
and edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x474a23
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x44]
mov edi, edx
add edx, ebp
mov ebx, dword [esp + 0x40]
adc ebx, esi
mov eax, dword [esp + 0x40]
cmp eax, ebx
seta bl
sete al
cmp edx, edi
setb dl
and edx, eax
or edx, ebx
test dl, dl
jne 0x474922
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x2c]
jmp 0x474a23
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x5c]
lea ecx, [0x58dea0]
mov edx, dword [ecx + eax]
mov eax, dword [ecx + eax + 4]
mov ecx, dword [esp + 0x40]
mov dword [esp + 4], ecx
mov dword [esp], edi
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
call fcn.0046e3d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x24]
add eax, edx
mov ebx, dword [esp + 0x28]
adc ecx, ebx
cmp ebx, ecx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp eax, edx
setb dl
and edx, ebp
or ebx, edx
test bl, bl
je 0x474994
mov ebx, dword [esp + 0x2c]
add ebx, 1
mov edx, dword [esp + 0x50]
adc edx, 0
jmp 0x47499c
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov ebp, edx
and edx, 0x3f
cmp edx, 0x3f
sete dl
cmp ebx, 0xffffffff
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x474a17
cmp eax, 0xffffffff
sete dl
cmp ecx, 0xffffffff
xchg esi, ebx
sete bl
xchg esi, ebx
and edx, esi
test dl, dl
je 0x474a17
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x44]
add edx, edi
mov eax, dword [esp + 0x40]
adc esi, eax
cmp eax, esi
seta al
xchg esi, ebx
sete bl
xchg esi, ebx
cmp edx, edi
setb dl
and edx, esi
or edx, eax
test dl, dl
jne 0x474a06
mov eax, dword [esp + 0x3c]
jmp 0x474a17
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
add esp, 0x60
ret
mov esi, ecx
mov ecx, ebp
mov ebp, eax
mov eax, ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], ecx
mov dword [esp + 0x28], esi
mov edx, ecx
shr edx, 0x1f
mov edi, edx
xor edx, 1
mov dword [esp + 0x50], edx
add edi, 0x26
mov ebx, 0
adc ebx, 0
cmp ebx, 1
sbb ebx, ebx
xor ebx, 0xffffffff
or ebx, edi
mov edi, ecx
mov ecx, ebx
shr eax, cl
shr edi, cl
lea esi, [ecx - 0x20]
mov ecx, esi
mov ebp, dword [esp + 0x30]
shr ebp, cl
neg ecx
mov edx, dword [esp + 0x30]
shl edx, cl
cmp ebx, 0x20
sbb ebx, ebx
and eax, ebx
and edi, ebx
cmp ecx, 0x20
sbb ebx, ebx
and edx, ebx
or edx, eax
cmp esi, 0x20
sbb eax, eax
and ebp, eax
or edx, ebp
mov eax, dword [esp + 0x38]
mov ebx, dword [esp + 0x50]
mov ebp, eax
sub eax, ebx
mov esi, dword [esp + 0x24]
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
mov ecx, eax
mov eax, dword [esp + 0x28]
test eax, eax
sete al
and eax, esi
test al, al
je 0x474b05
mov eax, dword [esp + 0x2c]
test eax, eax
sete al
mov esi, dword [esp + 0x30]
test esi, 0x3f
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x474aff
mov eax, edx
and edx, 3
cmp edx, 1
sete dl
and edx, 1
test dl, dl
jne 0x474aee
sub ebp, ebx
jmp 0x474b09
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
add esp, 0x60
ret
sub ebp, ebx
mov eax, edx
jmp 0x474b09
sub ebp, ebx
mov eax, edx
mov edx, dword [esp + 0x54]
sbb edx, 0
mov ebx, eax
and eax, 1
add eax, ebx
mov dword [esp + 0x34], eax
adc edi, 0
mov dword [esp + 0x54], edi
mov ebx, eax
shr eax, 1
mov ebp, edi
shl edi, 0x1f
mov esi, ebp
shr ebp, 0x19
shl esi, 7
shr ebx, 0x19
or esi, ebx
or edi, eax
test ebp, ebp
seta al
sete bl
test esi, esi
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, ebp
or ebx, eax
test bl, bl
je 0x474b69
mov edi, dword [esp + 0x34]
shr edi, 2
mov ebx, dword [esp + 0x54]
shl ebx, 0x1e
or edi, ebx
add ecx, 1
adc edx, 0
mov eax, ecx
add ecx, 0xffffffff
adc edx, 0xffffffff
test edx, edx
seta dl
sete bl
cmp ecx, 0xfe
setae cl
and ecx, ebx
or ecx, edx
test cl, cl
jne 0x474bb0
shl eax, 0x17
and edi, 0x7fffff
or eax, edi
movzx ecx, byte [esp + 0x70]
test cl, cl
je 0x474ba3
or eax, 0x80000000
mov dword [esp + 0x74], eax
mov byte [esp + 0x78], 1
add esp, 0x60
ret
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
add esp, 0x60
ret
mov dword [esp + 0x74], 0
mov byte [esp + 0x78], 0
add esp, 0x60
ret
mov eax, ebp
mov ecx, 0x100
call fcn.004667a0
mov esi, ecx
mov eax, ebp
mov ecx, 0x100
call fcn.00466860
nop
call fcn.00465370
jmp fcn.004746e0