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

Disassembly:
mov ecx, dword [0x62920c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x64]
cmp eax, dword [ecx + 8]
jbe 0x4779c0
sub esp, 0xe4
mov edx, dword [esp + 0x104]
cmp edx, 0x20
je 0x4771b9
cmp edx, 0x40
jne 0x4779a7
mov ecx, dword [esp + 0xf8]
mov eax, dword [esp + 0xf4]
lea edx, [0x5f91c8]
jmp 0x4771df
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.0044f9e0
mov eax, dword [esp + 8]
xor ecx, ecx
lea edx, [0x5f91b8]
mov dword [esp + 0xc4], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov ebx, dword [edx + 4]
mov dword [esp + 0x88], ebx
mov ebp, dword [edx]
mov dword [esp + 0x84], ebp
lea esi, [ebp + ebx - 0x20]
mov edi, ecx
mov ecx, esi
shr edi, cl
neg ecx
mov dword [esp + 0x80], ecx
mov edx, dword [esp + 0x4c]
shl edx, cl
mov dword [esp + 0x7c], edx
lea edx, [ebx + ebp]
mov ecx, edx
mov ebx, dword [esp + 0x4c]
shr ebx, cl
mov dword [esp + 0x78], ebx
shr eax, cl
mov ecx, ebp
mov ebx, dword [esp + 0x48]
shr ebx, cl
mov dword [esp + 0x74], ebx
mov ecx, dword [esp + 0x88]
mov ebx, 1
shl ebx, cl
mov dword [esp + 0x70], ebx
mov ecx, ebp
mov ebx, 1
shl ebx, cl
mov dword [esp + 0x6c], ebx
lea ebx, [ecx - 0x20]
mov dword [esp + 0x68], ebx
mov ecx, ebx
mov ebp, dword [esp + 0x4c]
shr ebp, cl
mov dword [esp + 0x64], ebp
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x60], ebp
neg ecx
mov ebp, dword [esp + 0x4c]
shl ebp, cl
mov dword [esp + 0x5c], ebp
mov ebp, 1
shr ebp, cl
cmp edx, 0x20
sbb edx, edx
and eax, edx
cmp esi, 0x20
sbb esi, esi
and esi, edi
mov edi, ebp
mov ebp, dword [esp + 0x80]
cmp ebp, 0x20
sbb ebp, ebp
mov ebx, dword [esp + 0x7c]
and ebx, ebp
or eax, ebx
or esi, eax
test esi, esi
setne bl
mov ebp, dword [esp + 0x78]
test edx, ebp
setne dl
or ebx, edx
mov edx, dword [esp + 0x84]
cmp edx, 0x20
sbb edx, edx
mov ebp, dword [esp + 0x74]
and ebp, edx
mov eax, ebx
mov ebx, dword [esp + 0x6c]
and ebx, edx
mov dword [esp + 0x80], ebx
mov edx, dword [esp + 0x88]
cmp edx, 0x20
sbb edx, edx
mov esi, ebx
mov ebx, dword [esp + 0x70]
and edx, ebx
dec edx
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x68]
cmp ebx, 0x20
sbb ebx, ebx
mov edx, dword [esp + 0x64]
and edx, ebx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x60]
and edx, ebx
cmp ecx, 0x20
sbb ebx, ebx
mov ecx, edx
mov edx, dword [esp + 0x5c]
and edx, ebx
or ebp, edx
mov edx, dword [esp + 0x7c]
or edx, ebp
mov ebp, dword [esp + 0x70]
and edx, ebp
and edi, ebx
or ecx, edi
add esi, 0xffffffff
mov edi, ecx
adc ecx, 0xffffffff
mov ebx, dword [esp + 0x48]
and esi, ebx
mov ebx, dword [esp + 0x4c]
and ecx, ebx
cmp edx, ebp
jne 0x477444
test ecx, ecx
setne cl
test esi, esi
setne dl
or ecx, edx
test cl, cl
je 0x47736c
mov eax, 3
lea ecx, [0x50c19e]
jmp 0x477388
test al, al
je 0x47737d
mov eax, 4
lea ecx, [0x50c30e]
jmp 0x477388
mov eax, 4
lea ecx, [0x50c312]
mov edx, dword [esp + 0xec]
lea ebx, [edx + eax]
mov ebp, dword [esp + 0xf0]
cmp ebp, ebx
jb 0x4773a6
mov esi, dword [esp + 0xe8]
jmp 0x4773f8
mov dword [esp + 0x54], eax
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
lea ecx, [0x4f2420]
mov dword [esp + 0x10], ecx
call fcn.0044e2a0
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xec]
mov esi, eax
mov ebp, ecx
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xcc], esi
mov dword [esp + 0x70], ebx
mov dword [esp + 0x58], ebp
add edx, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0046a180
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x110], eax
add esp, 0xe4
ret
test edx, edx
jne 0x47744f
mov edx, 1
jmp 0x47745a
or ecx, edi
mov ebx, dword [esp + 0x80]
or esi, ebx
mov ebx, dword [esp + 0xc4]
add edx, dword [ebx + 8]
movzx ebp, byte [esp + 0xfc]
xchg ebp, eax
cmp al, 0x62
xchg ebp, eax
je 0x477946
xchg ebp, eax
cmp al, 0x78
xchg ebp, eax
je 0x477485
xchg ebp, eax
cmp al, 0x58
xchg ebp, eax
jne 0x4774f7
mov edi, dword [esp + 0xe8]
mov dword [esp], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0xc], edi
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
mov byte [esp + 0x11], al
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
call fcn.00478d70
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
add esp, 0xe4
ret
movzx edi, byte [0x5f9100]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4778d4
mov byte [esp + 0x3b], al
mov dword [esp + 0x40], ecx
lea edi, [esp + 0xd0]
xor eax, eax
call fcn.00469a8b
mov ecx, dword [esp + 0x100]
test ecx, ecx
jl 0x47774f
xchg ebp, eax
cmp al, 0x66
xchg ebp, eax
je 0x4776ca
mov dword [esp + 0x50], edx
xchg ebp, eax
cmp al, 0x47
xchg ebp, eax
ja 0x477563
xchg ebp, eax
cmp al, 0x45
xchg ebp, eax
je 0x47756a
xchg ebp, eax
cmp al, 0x47
xchg ebp, eax
jne 0x477555
test ecx, ecx
jmp 0x47758c
mov edi, edx
mov edx, dword [esp + 0x104]
cmp edx, 0x20
jmp 0x4775c1
xchg ebp, eax
cmp al, 0x65
xchg ebp, eax
jne 0x477583
lea edi, [ecx + 1]
mov edx, dword [esp + 0x104]
cmp edx, 0x20
mov edx, edi
mov dword [esp + 0x70], ecx
mov edi, dword [esp + 0x50]
jmp 0x4775ca
xchg ebp, eax
cmp al, 0x67
xchg ebp, eax
jne 0x4775b5
test ecx, ecx
jne 0x4775a1
mov edi, edx
mov edx, dword [esp + 0x104]
cmp edx, 0x20
mov edx, 1
jmp 0x4775af
mov edi, edx
mov edx, dword [esp + 0x104]
cmp edx, 0x20
mov edx, ecx
mov dword [esp + 0x70], edx
jmp 0x4775ca
mov edi, edx
mov edx, dword [esp + 0x104]
cmp edx, 0x20
mov edx, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x3c], esi
lea edi, [esp + 0x8c]
call fcn.00469a8a
jne 0x477642
cmp edx, 9
jg 0x477642
lea eax, [esp + 0x8c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0x18
mov dword [esp + 0xd8], 0x18
mov eax, dword [ebx]
lea ecx, [esp + 0xd0]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 0x50]
sub ecx, eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.00479650
mov ebx, dword [esp + 0xc4]
movzx ebp, byte [esp + 0xfc]
mov esi, dword [esp + 0x3c]
mov eax, 1
jmp 0x4776b7
cmp edx, 0x12
jg 0x4776b4
mov dword [esp + 0x44], edx
lea eax, [esp + 0x8c]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], 0x18
mov dword [esp + 0xd8], 0x18
mov eax, dword [ebx]
lea ecx, [esp + 0xd0]
mov dword [esp], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], esi
mov ebp, dword [esp + 0x50]
sub ebp, eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
call fcn.004799b0
mov eax, dword [esp + 0x44]
cmp eax, 0x12
mov ebx, dword [esp + 0xc4]
movzx ebp, byte [esp + 0xfc]
mov esi, dword [esp + 0x3c]
setle al
mov edx, dword [esp + 0x50]
mov edi, eax
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x100]
jmp 0x4776ce
mov eax, ecx
xor edi, edi
xchg edi, eax
test al, al
xchg edi, eax
je 0x4776db
test eax, eax
jmp 0x477855
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0x11], al
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
call fcn.004779d0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
add esp, 0xe4
ret
lea edi, [esp + 0xa4]
call fcn.00469a88
lea ecx, [esp + 0xa4]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], 0x20
mov dword [esp + 0xd8], 0x20
mov ecx, dword [ebx]
lea ebp, [esp + 0xd0]
mov dword [esp], ebp
mov ebp, dword [esp + 0x40]
mov dword [esp + 8], ebp
mov dword [esp + 4], esi
sub edx, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.0047a4a0
movzx ecx, byte [esp + 0xfc]
cmp cl, 0x47
ja 0x4777d3
cmp cl, 0x45
je 0x4777d8
cmp cl, 0x47
jne 0x4777c8
mov eax, dword [esp + 0x100]
test eax, eax
jmp 0x47783f
mov eax, dword [esp + 0x100]
test eax, eax
jmp 0x477851
cmp cl, 0x65
jne 0x4777ff
mov eax, dword [esp + 0xdc]
dec eax
test eax, eax
jle 0x4777ef
mov edx, dword [esp + 0x100]
test edx, edx
jmp 0x477851
mov edx, dword [esp + 0x100]
test edx, edx
mov eax, 0
jmp 0x477851
cmp cl, 0x66
jne 0x477831
mov eax, dword [esp + 0xdc]
sub eax, dword [esp + 0xe0]
test eax, eax
jle 0x477821
mov edx, dword [esp + 0x100]
test edx, edx
jmp 0x477851
mov edx, dword [esp + 0x100]
test edx, edx
mov eax, 0
jmp 0x477851
cmp cl, 0x67
jne 0x477848
mov eax, dword [esp + 0x100]
test eax, eax
mov eax, dword [esp + 0xdc]
jmp 0x477851
mov eax, dword [esp + 0x100]
test eax, eax
mov ebp, ecx
mov ecx, eax
mov dword [esp + 0x70], ecx
setl al
mov edx, dword [esp + 0xe8]
mov dword [esp], edx
mov edx, dword [esp + 0xec]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xf0]
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
movzx eax, byte [esp + 0x3b]
mov byte [esp + 0xd], al
lea edi, [esp + 0x10]
lea esi, [esp + 0xd0]
call fcn.00469f6e
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], eax
xchg ebp, eax
mov byte [esp + 0x28], al
xchg ebp, eax
call fcn.00477d10
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
add esp, 0xe4
ret
mov edi, dword [esp + 0xe8]
mov dword [esp], edi
mov edi, dword [esp + 0xec]
mov dword [esp + 4], edi
mov edi, dword [esp + 0xf0]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0xc], edi
xchg ebp, eax
mov byte [esp + 0x10], al
xchg ebp, eax
mov byte [esp + 0x11], al
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
call fcn.004779d0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
add esp, 0xe4
ret
mov ebp, dword [esp + 0xe8]
mov dword [esp], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0xf0]
mov dword [esp + 8], ebp
mov byte [esp + 0xc], al
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
call fcn.00478bd0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0x110], edx
add esp, 0xe4
ret
lea eax, [0x4f20e0]
mov dword [esp], eax
lea eax, [0x537324]
mov dword [esp + 4], eax
call fcn.004387d0
nop
call fcn.00468500
jmp fcn.00477170