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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x47801b
add esp, 0xffffff80
mov edx, dword [esp + 0x9c]
test edx, edx
sete bl
mov ebp, dword [esp + 0x98]
test ebp, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
and ebx, esi
test bl, bl
je 0x47776f
xor eax, eax
jmp 0x477776
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov ebx, dword [ebx]
lea ecx, [ebx - 0x3c]
neg ecx
cmp ecx, 0x20
sbb ebx, ebx
lea esi, [ecx - 0x20]
mov dword [esp + 0x60], esi
cmp esi, 0x20
sbb edi, edi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0x5c], esi
cmp esi, 0x20
sbb esi, esi
shl edx, cl
shl ebp, cl
and ebp, ebx
mov dword [esp + 0x58], ebp
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x98]
shl ebp, cl
and ebp, edi
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x98]
shr edi, cl
and edi, esi
and edx, ebx
or edx, edi
or edx, ebp
mov ebx, dword [esp + 0x58]
jmp 0x4777e6
shl edx, 1
mov ebp, ebx
shr ebx, 0x1f
or edx, ebx
shl ebp, 1
dec eax
mov ebx, ebp
test edx, edx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
setne bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x477816
test edx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4777d8
mov ebp, dword [esp + 0x90]
cmp ebp, 0xf
jae 0x47799f
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ebx
shl ebp, 2
mov dword [esp + 0x4c], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x60], edi
lea ecx, [ebp - 0x20]
mov dword [esp + 0x5c], ecx
neg ecx
mov dword [esp + 0x58], ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x5c]
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x5c], edx
lea edx, [ebp - 0x3c]
neg edx
mov dword [esp + 0x48], edx
cmp edx, 0x20
sbb ebp, ebp
mov dword [esp + 0x44], ebp
lea ebp, [edx - 0x20]
mov dword [esp + 0x40], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x3c], ebp
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
cmp edx, 0x20
sbb edx, edx
mov dword [esp + 0x34], edx
mov ecx, edi
mov edi, ebx
shl ebx, cl
mov ecx, dword [esp + 0x58]
shr edi, cl
and edi, esi
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
shl esi, cl
mov edx, dword [esp + 0x60]
and esi, edx
mov ebp, dword [esp + 0x5c]
and ebp, ebx
or esi, edi
or esi, ebp
and esi, 0xfffffff
cmp esi, 0x8000000
seta bl
mov byte [esp + 0x27], bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg ebp, eax
mov byte [esp + 0x26], al
xchg ebp, eax
mov esi, dword [esp + 0x50]
mov edi, esi
shl esi, cl
and esi, edx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
shl edx, cl
mov ebx, dword [esp + 0x38]
and edx, ebx
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x54]
shr ebx, cl
mov ebp, dword [esp + 0x34]
and ebx, ebp
mov ecx, dword [esp + 0x48]
shr edi, cl
mov ebp, dword [esp + 0x44]
and edi, ebp
or edx, edi
or edx, ebx
mov ebx, edx
and edx, 1
or edx, esi
test edx, edx
seta dl
mov esi, dword [esp + 0x54]
shr esi, cl
and esi, ebp
movzx edi, byte [esp + 0x26]
and edi, edx
movzx edx, byte [esp + 0x27]
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x477946
add ebx, 1
adc esi, 0
mov edx, ecx
mov ecx, dword [esp + 0x3c]
mov edi, ebx
shr ebx, cl
mov ecx, edi
mov edi, dword [esp + 0x38]
and ebx, edi
mov edi, ecx
mov ecx, edx
shl esi, cl
and esi, ebp
or ebx, esi
mov ecx, dword [esp + 0x40]
mov esi, edi
shl edi, cl
mov ecx, ebp
mov ebp, dword [esp + 0x34]
and edi, ebp
or edi, ebx
mov ebx, ecx
mov ecx, edx
shl esi, cl
and esi, ebx
test edi, 0x20000000
je 0x477992
shr esi, 1
mov ecx, edi
shl edi, 0x1f
or esi, edi
shr ecx, 1
inc eax
jmp 0x477994
mov ecx, edi
mov ebp, dword [esp + 0x90]
mov edx, ecx
mov ebx, esi
movzx ecx, byte [esp + 0x94]
cmp cl, 0x58
jne 0x4779b4
lea esi, [0x6c300f]
jmp 0x4779ba
lea esi, [0x6c301f]
mov dword [esp + 0x74], esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x5c], ebx
movzx edi, byte [esp + 0x95]
xchg edi, eax
test al, al
xchg edi, eax
je 0x477a65
mov edi, dword [esp + 0x88]
inc edi
mov esi, dword [esp + 0x8c]
cmp esi, edi
jb 0x477a04
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
jmp 0x477a5a
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x7c], eax
mov esi, ecx
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x94]
mov ebp, dword [esp + 0x7c]
mov byte [edi + ebp - 1], 0x2d
jmp 0x477a7a
mov esi, dword [esp + 0x8c]
mov ebp, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
add edi, 3
cmp esi, edi
jae 0x477ac3
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov byte [edi + ebp - 3], 0x30
mov byte [edi + ebp - 2], cl
shr edx, 0x1c
and edx, 1
add edx, 0x30
mov byte [edi + ebp - 1], dl
mov edx, dword [esp + 0x60]
shl edx, 4
shr ebx, 0x1c
or ebx, edx
mov dword [esp + 0x60], ebx
mov edx, dword [esp + 0x5c]
shl edx, 4
mov dword [esp + 0x5c], edx
mov ecx, dword [esp + 0x90]
test ecx, ecx
jge 0x477b68
test ebx, ebx
setne bl
test edx, edx
setne dl
or edx, ebx
test dl, dl
je 0x477b5e
lea ecx, [edi + 1]
cmp esi, ecx
jae 0x477b48
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov byte [ecx + ebp - 1], 0x2e
mov edi, dword [esp + 0x74]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jmp 0x477f8b
test ecx, ecx
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
jle 0x477bc8
inc edi
cmp esi, edi
jae 0x477bb0
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x60]
mov byte [edi + ebp - 1], 0x2e
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
jmp 0x477f05
movzx ecx, byte [esp + 0x94]
mov edx, ecx
or ecx, 0x20
cmp dl, cl
jne 0x477be0
mov ecx, 0x70
jmp 0x477be5
mov ecx, 0x50
lea edx, [edi + 1]
cmp esi, edx
jae 0x477c27
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
test eax, eax
jge 0x477c38
neg eax
mov ecx, 0x2d
jmp 0x477c3d
mov ecx, 0x2b
mov dword [esp + 0x4c], eax
inc edx
cmp esi, edx
jae 0x477c81
mov byte [esp + 0x23], cl
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
movzx ecx, byte [esp + 0x23]
mov byte [edx + ebp - 1], cl
cmp eax, 0x64
jge 0x477d00
lea ecx, [edx + 2]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
add edx, ebx
sar edx, 3
mov edi, ebx
sar ebx, 0x1f
sub edx, ebx
lea ebx, [edx + edx*4]
shl ebx, 1
sub edi, ebx
cmp esi, ecx
jae 0x477ced
mov dword [esp + 0x4c], edx
mov dword [esp + 0x30], edi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 2
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov edi, dword [esp + 0x30]
lea eax, [edx + 0x30]
mov byte [ecx + ebp - 2], al
lea eax, [edi + 0x30]
mov byte [ecx + ebp - 1], al
jmp 0x477ebf
cmp eax, 0x3e8
jge 0x477dc5
lea ecx, [edx + 3]
mov edx, eax
mov eax, 0xcccccccd
mov ebx, edx
imul edx
add edx, ebx
mov edi, edx
sar edx, 3
mov dword [esp + 0x30], edx
mov eax, 0xcccccccd
imul edx
sar edi, 0x1f
mov eax, ebp
mov ebp, dword [esp + 0x30]
add edx, ebp
sar edx, 3
sub edx, edi
lea edx, [edx + edx*4]
shl edx, 1
mov edi, ebp
sub ebp, edx
lea edx, [edi + edi*4]
shl edx, 1
mov edi, ebx
sub ebx, edx
mov dword [esp + 0x30], ebx
cmp esi, ecx
jae 0x477d95
mov dword [esp + 0x2c], ebp
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 3
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x4c]
mov eax, ebp
mov ebp, dword [esp + 0x2c]
mov edx, eax
mov eax, edi
mov ebx, 0x51eb851f
mov edi, edx
imul ebx
sar edx, 5
add edx, 0x30
mov byte [ecx + edi - 3], dl
lea edx, [ebp + 0x30]
mov byte [ecx + edi - 2], dl
mov edx, dword [esp + 0x30]
add edx, 0x30
mov byte [ecx + edi - 1], dl
mov ebp, edi
jmp 0x477ebf
mov dword [esp + 0x78], ebp
lea ecx, [edx + 4]
mov edx, 0x51eb851f
imul edx
sar edx, 5
movzx ebx, dl
imul ebx, ebx, 0x19a
shr ebx, 0xc
lea ebx, [ebx + ebx*4]
shl ebx, 1
sub edx, ebx
mov byte [esp + 0x25], dl
mov eax, 0xcccccccd
mov ebx, dword [esp + 0x4c]
mov edi, edx
imul ebx
add edx, ebx
mov dword [esp + 0x30], edx
sar edx, 3
mov dword [esp + 0x2c], edx
mov eax, 0xcccccccd
imul edx
mov eax, edi
mov edi, dword [esp + 0x2c]
add edx, edi
sar edx, 3
mov ebp, dword [esp + 0x30]
sar ebp, 0x1f
sub edx, ebp
lea edx, [edx + edx*4]
shl edx, 1
mov ebp, edi
sub edi, edx
lea edx, [ebp + ebp*4]
shl edx, 1
mov ebp, ebx
sub ebx, edx
cmp esi, ecx
jb 0x477e3f
mov edx, dword [esp + 0x78]
jmp 0x477e8c
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 4
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
movzx eax, byte [esp + 0x25]
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
mov edx, ebp
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x7c], edx
mov eax, 0x4189374c
imul ebp
sar edx, 8
add edx, 0x30
mov ebp, dword [esp + 0x7c]
mov byte [ecx + ebp - 4], dl
movzx edx, byte [esp + 0x25]
add edx, 0x30
mov byte [ecx + ebp - 3], dl
lea edx, [edi + 0x30]
mov byte [ecx + ebp - 2], dl
lea edx, [ebx + 0x30]
mov byte [ecx + ebp - 1], dl
mov dword [esp + 0xa8], ebp
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], esi
sub esp, 0xffffff80
ret
mov byte [edi + ebp - 1], bl
inc edx
mov ebx, dword [esp + 0x5c]
shl ebx, 4
mov eax, dword [esp + 0x60]
shr eax, 0x1c
or ebx, eax
mov eax, dword [esp + 0x60]
shl eax, 4
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x28], edx
mov edx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x28]
cmp ecx, edx
jle 0x477bc8
mov dword [esp + 0x5c], ebx
inc edi
shr ebx, 0x1c
and ebx, 0xf
mov ecx, dword [esp + 0x74]
movzx ebx, byte [ecx + ebx]
cmp esi, edi
jae 0x477ed8
mov byte [esp + 0x24], bl
mov dword [esp], ebp
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x24]
jmp 0x477ed8
mov byte [ecx + ebp - 1], bl
shl edx, 4
mov ebx, dword [esp + 0x60]
shr ebx, 0x1c
or ebx, edx
mov edx, dword [esp + 0x60]
shl edx, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x7c], ebp
test ebx, ebx
xchg ebp, ebx
setne bl
xchg ebp, ebx
test edx, edx
setne dl
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x478010
inc ecx
mov edx, ebx
shr ebx, 0x1c
and ebx, 0xf
movzx ebx, byte [edi + ebx]
cmp esi, ecx
jb 0x477fc0
mov ebp, dword [esp + 0x7c]
jmp 0x477f74
mov dword [esp + 0x5c], edx
mov byte [esp + 0x24], bl
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x5c]
movzx ebx, byte [esp + 0x24]
mov edi, dword [esp + 0x74]
jmp 0x477f74
mov ebp, dword [esp + 0x7c]
mov edi, ecx
jmp 0x477bc8
call fcn.00462f90
jmp fcn.00477730