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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x474813
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 0x473eff
xor eax, eax
jmp 0x473f06
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 ebp, cl
shl edx, 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 0x473f76
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 0x473fa6
test edx, 0x10000000
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, 1
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x473f68
mov ebp, dword [esp + 0x90]
cmp ebp, 0xf
jae 0x47412c
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], edx
shl ebp, 2
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x60], edi
lea ecx, [ebp - 0x20]
mov dword [esp + 0x5c], ecx
neg ecx
cmp ecx, 0x20
sbb esi, esi
mov edi, dword [esp + 0x5c]
cmp edi, 0x20
sbb edi, edi
mov dword [esp + 0x58], edi
lea edi, [ebp - 0x3c]
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x4c], edi
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x48], edx
lea edx, [edi - 0x20]
mov dword [esp + 0x44], edx
neg edx
mov dword [esp + 0x40], edx
cmp edx, 0x20
sbb edx, edx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x44]
cmp edx, 0x20
sbb edx, edx
mov dword [esp + 0x38], edx
shr ebx, cl
and ebx, esi
mov ecx, ebp
mov esi, dword [esp + 0x50]
shl esi, cl
mov edx, dword [esp + 0x60]
and esi, edx
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x54]
shl edi, cl
mov ecx, edx
mov edx, dword [esp + 0x58]
and edx, edi
or esi, ebx
or esi, edx
and esi, 0xfffffff
cmp esi, 0x8000000
sete dl
mov byte [esp + 0x23], dl
mov ebx, ecx
mov ecx, ebp
mov edi, dword [esp + 0x54]
mov ebp, edi
shl edi, cl
and edi, ebx
mov ecx, dword [esp + 0x4c]
shr ebp, cl
mov ebx, dword [esp + 0x48]
and ebp, ebx
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x50]
shl edx, cl
mov ebx, dword [esp + 0x3c]
and edx, ebx
or edx, ebp
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x50]
shr ebx, cl
mov ebp, dword [esp + 0x38]
and ebx, ebp
or edx, ebx
mov ebx, edx
and edx, 1
or edx, edi
test edx, edx
seta dl
cmp esi, 0x8000000
xchg esi, ebx
seta bl
xchg esi, ebx
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x50]
shr ebp, cl
mov edi, dword [esp + 0x48]
and ebp, edi
movzx edi, byte [esp + 0x23]
and edi, edx
or edi, esi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4740d5
add ebx, 1
adc ebp, 0
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov esi, ebx
shl ebx, cl
mov edi, dword [esp + 0x38]
and ebx, edi
mov ecx, dword [esp + 0x40]
mov edi, esi
shr esi, cl
mov ecx, edi
mov edi, dword [esp + 0x3c]
and esi, edi
mov edi, ecx
mov ecx, edx
shl ebp, cl
mov edx, dword [esp + 0x48]
and ebp, edx
or esi, ebp
or esi, ebx
shl edi, cl
and edi, edx
test esi, 0x20000000
je 0x47411f
shr edi, 1
mov ecx, esi
shl esi, 0x1f
or edi, esi
shr ecx, 1
inc eax
jmp 0x474121
mov ecx, esi
mov ebp, dword [esp + 0x90]
mov ebx, edi
mov edx, ecx
movzx ecx, byte [esp + 0x94]
cmp cl, 0x58
jne 0x474141
lea esi, [0x50f33b]
jmp 0x474147
lea esi, [0x50f34b]
mov dword [esp + 0x74], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x60], ebx
mov dword [esp + 0x5c], edx
movzx edi, byte [esp + 0x95]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4741f2
mov edi, dword [esp + 0x88]
lea esi, [edi + 1]
mov ebp, dword [esp + 0x8c]
cmp ebp, esi
jb 0x474193
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
jmp 0x4741e8
lea eax, [0x4f7380]
mov dword [esp], eax
mov ecx, dword [esp + 0x84]
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00447020
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea esi, [ecx + 1]
movzx ecx, byte [esp + 0x94]
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x88]
mov dword [esp + 0x7c], eax
mov ebp, edx
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x7c]
mov byte [ebx + edi], 0x2d
jmp 0x474207
mov esi, dword [esp + 0x88]
mov ebp, dword [esp + 0x8c]
mov ebx, dword [esp + 0x84]
lea edi, [esi + 3]
cmp ebp, edi
jae 0x474253
mov dword [esp + 0x30], esi
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 3]
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x94]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x30], edi
mov byte [ebx + esi], 0x30
mov byte [ebx + esi + 1], cl
shr edx, 0x1c
and edx, 1
add edx, 0x30
mov byte [ebx + esi + 2], dl
mov edx, dword [esp + 0x5c]
shl edx, 4
mov esi, dword [esp + 0x60]
shr esi, 0x1c
or esi, edx
mov dword [esp + 0x5c], esi
mov edx, dword [esp + 0x60]
shl edx, 4
mov dword [esp + 0x60], edx
mov ecx, dword [esp + 0x90]
test ecx, ecx
jge 0x474305
test esi, esi
xchg esi, ebx
setne bl
xchg esi, ebx
test edx, edx
setne dl
or edx, esi
test dl, dl
je 0x4742fb
lea ecx, [edi + 1]
cmp ebp, ecx
jae 0x4742e6
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x30]
mov byte [ebx + edi], 0x2e
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
jmp 0x474780
test ecx, ecx
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
jle 0x474369
lea ecx, [edi + 1]
cmp ebp, ecx
jae 0x47434b
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x30]
mov byte [ebx + edi], 0x2e
mov edi, dword [esp + 0x90]
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
jmp 0x4746d9
movzx ecx, byte [esp + 0x94]
mov edx, ecx
or ecx, 0x20
cmp dl, cl
jne 0x474381
mov ecx, 0x70
jmp 0x474386
mov ecx, 0x50
lea edx, [edi + 1]
cmp ebp, edx
jae 0x4743cf
mov dword [esp + 0x30], edi
mov byte [esp + 0x20], cl
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x20]
mov edi, dword [esp + 0x30]
mov byte [ebx + edi], cl
test eax, eax
jge 0x4743df
neg eax
mov ecx, 0x2d
jmp 0x4743e4
mov ecx, 0x2b
mov dword [esp + 0x34], eax
lea esi, [edx + 1]
cmp ebp, esi
jae 0x474431
mov dword [esp + 0x30], edx
mov byte [esp + 0x20], cl
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea esi, [eax + 1]
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x20]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x30], esi
mov byte [ebx + edx], cl
cmp eax, 0x64
jge 0x4744b5
lea ecx, [esi + 2]
mov edx, eax
mov eax, 0xcccccccd
mov edi, edx
imul edx
add edx, edi
sar edx, 3
mov eax, edi
sar edi, 0x1f
sub edx, edi
lea edi, [edx + edx*4]
shl edi, 1
sub eax, edi
cmp ebp, ecx
jae 0x4744a3
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 2]
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
add edx, 0x30
mov byte [ebx + esi], dl
add eax, 0x30
mov byte [ebx + esi + 1], al
jmp 0x47468c
mov dword [esp + 0x78], ebx
cmp eax, 0x3e8
jge 0x474594
lea ecx, [esi + 3]
mov edx, eax
mov eax, 0xcccccccd
mov edi, edx
imul edx
add edx, edi
mov dword [esp + 0x2c], edx
sar edx, 3
mov dword [esp + 0x28], edx
mov eax, 0xcccccccd
imul edx
mov eax, esi
mov esi, dword [esp + 0x2c]
sar esi, 0x1f
mov ebx, dword [esp + 0x28]
add edx, ebx
sar edx, 3
sub edx, esi
lea edx, [edx + edx*4]
shl edx, 1
mov esi, ebx
sub ebx, edx
lea edx, [esi + esi*4]
shl edx, 1
mov esi, edi
sub edi, edx
cmp ebp, ecx
jb 0x474516
mov edx, dword [esp + 0x78]
jmp 0x474561
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edi
lea edx, [0x4f7380]
mov dword [esp], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 3]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x28]
mov edx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x7c], edx
mov eax, 0x51eb851f
imul esi
sar edx, 5
add edx, 0x30
mov esi, dword [esp + 0x30]
mov eax, edi
mov edi, dword [esp + 0x7c]
mov byte [edi + esi], dl
lea edx, [ebx + 0x30]
mov byte [edi + esi + 1], dl
lea edx, [eax + 0x30]
mov byte [edi + esi + 2], dl
mov ebx, edi
jmp 0x47468c
lea ecx, [esi + 4]
mov edx, eax
mov eax, 0x51eb851f
mov edi, edx
imul edx
sar edx, 5
mov eax, esi
movzx esi, dl
imul esi, esi, 0x19a
shr esi, 0xc
lea esi, [esi + esi*4]
shl esi, 1
sub edx, esi
mov byte [esp + 0x22], dl
mov esi, eax
mov eax, 0xcccccccd
imul edi
add edx, edi
mov dword [esp + 0x2c], edx
sar edx, 3
mov dword [esp + 0x28], edx
mov eax, 0xcccccccd
imul edx
mov eax, esi
mov esi, dword [esp + 0x28]
add edx, esi
sar edx, 3
mov ebx, dword [esp + 0x2c]
sar ebx, 0x1f
sub edx, ebx
lea edx, [edx + edx*4]
shl edx, 1
mov ebx, esi
sub esi, edx
lea edx, [ebx + ebx*4]
shl edx, 1
mov ebx, edi
sub edi, edx
mov dword [esp + 0x2c], edi
cmp ebp, ecx
jb 0x47460f
mov edx, dword [esp + 0x78]
jmp 0x474656
mov dword [esp + 0x28], esi
lea edx, [0x4f7380]
mov dword [esp], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea ecx, [eax + 4]
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov edx, ebx
mov ebx, dword [esp + 0x34]
mov eax, ebx
mov edi, 0x4189374c
mov ebx, edx
imul edi
sar edx, 8
add edx, 0x30
mov edi, dword [esp + 0x30]
mov byte [ebx + edi], dl
movzx edx, byte [esp + 0x22]
add edx, 0x30
mov byte [ebx + edi + 1], dl
lea edx, [esi + 0x30]
mov byte [ebx + edi + 2], dl
mov edx, dword [esp + 0x2c]
add edx, 0x30
mov byte [ebx + edi + 3], dl
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ebp
sub esp, 0xffffff80
ret
xchg esi, eax
mov byte [ebx + ecx], al
xchg esi, eax
mov ecx, dword [esp + 0x24]
inc ecx
mov esi, dword [esp + 0x5c]
shl esi, 4
mov eax, dword [esp + 0x60]
shr eax, 0x1c
or esi, eax
mov eax, dword [esp + 0x60]
shl eax, 4
mov dword [esp + 0x24], ecx
mov edx, eax
mov ecx, edi
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x90]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x24]
cmp edi, edx
jle 0x47474b
mov dword [esp + 0x5c], esi
lea edi, [ecx + 1]
shr esi, 0x1c
and esi, 0xf
mov edx, dword [esp + 0x74]
movzx esi, byte [edx + esi]
cmp ebp, edi
jae 0x4746a5
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
mov dword [esp + 0x2c], ecx
lea eax, [0x4f7380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edi
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edi, [eax + 1]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x74]
movzx esi, byte [esp + 0x21]
jmp 0x4746a5
mov edi, ecx
jmp 0x474369
mov eax, dword [esp + 0x7c]
xchg esi, ebx
mov byte [eax + ecx], bl
xchg esi, ebx
shl ebx, 4
mov esi, dword [esp + 0x60]
mov ecx, esi
shr esi, 0x1c
or esi, ebx
shl ecx, 4
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x7c]
mov ebx, edx
mov edx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x60], edx
test esi, esi
setne bl
test edx, edx
setne dl
or ebx, edx
test bl, bl
je 0x474808
lea edx, [ecx + 1]
mov ebx, esi
shr esi, 0x1c
and esi, 0xf
movzx esi, byte [edi + esi]
cmp ebp, edx
jae 0x474752
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x2c], ecx
lea eax, [0x4f7380]
mov dword [esp], eax
mov ebx, dword [esp + 0x7c]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.00447020
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
movzx esi, byte [esp + 0x21]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x5c]
jmp 0x474752
mov edi, ecx
mov ebx, dword [esp + 0x7c]
jmp 0x474369
call fcn.0045c7a0
jmp fcn.00473ec0