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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5710e2
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x5f7448]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
call fcn.004774e0
cmp word [esi + 0xa8], 0x3f
jne 0x47280d
cmp dword [esi + 0xac], 1
jne 0x47280d
mov ecx, esi
call fcn.004774e0
movzx ecx, word [esi + 0xa8]
xor ebx, ebx
lea eax, [ecx - 0x21]
lea edi, [ebx + 0x3e]
cmp eax, 0x31
ja case.0x471dd0.34
movzx eax, byte [eax + 0x472958]
jmp dword [eax*4 + 0x472934]
mov ebx, 1
mov ecx, esi
call fcn.004774e0
push 0xc
call fcn.004ad19b
mov edi, eax
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 0
test edi, edi
je 0x471e21
mov eax, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [eax]
test ebx, ebx
sete cl
and eax, 0xffffffef
push ecx
push eax
mov ecx, esi
call fcn.0046f820
push eax
mov ecx, edi
call fcn.0046bd10
mov ebx, eax
jmp 0x471e23
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
push ebx
lea ecx, [esi + 0x14]
call fcn.00477680
mov ecx, esi
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx eax, word [esi + 0xb8]
cmp eax, 0x21
je 0x471e63
cmp eax, 0x3d
je 0x471e68
jmp case.0x471dd0.80
mov ebx, 1
mov ecx, esi
call fcn.004774e0
mov ecx, esi
call fcn.004774e0
push 0xc
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
test eax, eax
je 0x471eb3
mov eax, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [eax]
test ebx, ebx
sete cl
or eax, 0x10
push ecx
push eax
mov ecx, esi
call fcn.0046f820
mov ecx, dword [ebp - 0x1c]
push eax
call fcn.0046bd10
mov ebx, eax
jmp 0x471eb5
xor ebx, ebx
mov dword [ebp - 4], 0xffffffff
push ebx
lea ecx, [esi + 0x14]
call fcn.00477680
test ebx, ebx
jne 0x4727f0
cmp word [esi + 0xa8], 0x50
jne case.0x471dd0.39
mov ecx, esi
call fcn.004774e0
movzx eax, word [esi + 0xa8]
cmp eax, 0x3c
jne 0x471eef
lea edi, [eax + 2]
jmp 0x471ef9
mov ecx, 0x27
cmp eax, ecx
cmove edi, ecx
mov ecx, esi
call fcn.004774e0
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x24], eax
inc eax
push 0x1c
mov dword [esi + 0xc], eax
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 2
test eax, eax
je 0x471f39
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.0046cd80
mov ebx, eax
mov dword [ebp - 0x14], eax
jmp 0x471f3e
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x14]
push ebx
call fcn.00477680
push 0x20
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 3
test eax, eax
je 0x471f7d
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
shr ecx, 4
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.0046bfa0
jmp 0x471f7f
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [esi + 0x14]
call fcn.00477680
push 0x20
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 4
test eax, eax
je 0x471fc3
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.0046bfa0
jmp 0x471fc5
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [esi + 0x14]
call fcn.00477680
mov eax, dword [ebp - 0x18]
add eax, 0xc
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x20], eax
call fcn.0046c280
mov dword [ebp - 4], 5
cmp word [esi + 0xa8], 0
je 0x472060
mov ebx, dword [ebp - 0x20]
lea ecx, [ecx]
movzx eax, word [esi + 0xa8]
cmp ax, di
je 0x47205d
push 1
mov dword [ebp - 0x20], eax
push 1
lea eax, [ebp - 0x20]
push eax
mov ecx, ebx
call fcn.0046eed0
movzx ecx, word [esi + 0xa8]
movzx eax, cl
cmp ax, cx
jne 0x472038
mov al, byte [esi + 0xa8]
mov byte [ebp - 0x10], al
jmp 0x47203c
mov byte [ebp - 0x10], 0
push 1
push 1
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x38]
call fcn.0046ee40
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], 0
jne 0x472000
mov ebx, dword [ebp - 0x14]
mov ecx, esi
call fcn.004774e0
lea ecx, [ebp - 0x38]
call fcn.00473c70
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00477780
add esp, 8
test eax, eax
je 0x4720ab
mov eax, dword [ebp - 0x14]
xor edx, edx
cmp byte [eax], dl
sete dl
test edx, edx
je 0x4720ab
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
mov dword [edx + 4], eax
mov dword [ecx + 4], eax
lea ecx, [edx + 0xc]
call fcn.004779e0
push dword [ebp - 0x18]
lea ecx, [ebx + 4]
call fcn.00477680
mov eax, dword [ebp + 8]
mov ecx, esi
push dword [eax]
call fcn.0046f820
push eax
lea ecx, [ebx + 4]
call fcn.00477680
push dword [ebp - 0x1c]
lea ecx, [ebx + 4]
call fcn.00477680
mov edi, dword [ebp - 0x24]
push 0
push edi
lea ecx, [esi + 0x50]
call fcn.00477550
mov eax, dword [esi + 0x5c]
mov dword [eax + edi*4], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0046d8b0
mov ecx, esi
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
call fcn.004774e0
push 8
call fcn.004ad19b
mov edi, eax
add esp, 4
mov dword [ebp - 0x24], edi
mov dword [ebp - 4], 6
test edi, edi
je 0x471e21
mov ecx, dword [ebp + 8]
push dword [ecx]
mov ecx, esi
call fcn.0046f820
push eax
mov ecx, edi
call fcn.0046cd20
mov ebx, eax
jmp 0x471e23
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], bx
je 0x472194
jmp 0x472170
movzx eax, word [esi + 0xa8]
push eax
call fcn.004b1b28
add esp, 4
test eax, eax
je 0x472194
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], bx
jne 0x472170
movzx ecx, word [esi + 0xa8]
cmp ecx, 0x3c
je 0x472268
cmp ecx, 0x27
je 0x472268
lea ecx, [ebp - 0x38]
call fcn.0046c280
mov dword [ebp - 4], 9
cmp word [esi + 0xa8], 0
je 0x472214
jmp 0x4721d0
movzx ecx, word [esi + 0xa8]
cmp ecx, 0x29
je 0x472214
movzx eax, cl
cmp ax, cx
jne 0x4721ef
mov al, byte [esi + 0xa8]
mov byte [ebp + 8], al
jmp 0x4721f3
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0046ee40
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], 0
jne 0x4721d0
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], 0
call fcn.00473c70
mov dword [ebp - 0x24], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00477780
push 0x20
call fcn.004ad19b
add esp, 0xc
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0xa
test eax, eax
je 0x47225d
push dword [ebp + 8]
mov ecx, eax
call fcn.0046cb80
mov ebx, eax
mov byte [ebp - 4], 9
jmp 0x4726bc
xor ebx, ebx
mov byte [ebp - 4], 9
jmp 0x4726bc
mov edx, edi
cmp ecx, 0x3c
mov eax, 0x27
cmove eax, edx
push 0x20
movzx edi, ax
call fcn.004ad19b
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 4], 7
test eax, eax
je 0x4722a0
push 0xfffffffffffffffd
mov ecx, eax
call fcn.0046cb80
mov ebx, eax
mov dword [ebp - 0x14], eax
jmp 0x4722a5
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0xffffffff
push ebx
lea ecx, [esi + 0x14]
call fcn.00477680
mov ecx, esi
call fcn.004774e0
lea eax, [ebx + 0xc]
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], eax
call fcn.0046c280
mov dword [ebp - 4], 8
cmp word [esi + 0xa8], 0
je 0x472340
mov ebx, dword [ebp + 8]
mov edi, edi
movzx eax, word [esi + 0xa8]
cmp ax, di
je 0x47233d
push 1
mov dword [ebp + 8], eax
push 1
lea eax, [ebp + 8]
push eax
mov ecx, ebx
call fcn.0046eed0
movzx ecx, word [esi + 0xa8]
movzx eax, cl
cmp ax, cx
jne 0x472318
mov al, byte [esi + 0xa8]
mov byte [ebp + 8], al
jmp 0x47231c
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0046ee40
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], 0
jne 0x4722e0
mov ebx, dword [ebp - 0x14]
mov ecx, esi
call fcn.004774e0
lea ecx, [ebp - 0x38]
call fcn.00473c70
mov dword [ebp + 8], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp + 8]
push eax
call fcn.00477780
add esp, 8
test eax, eax
je 0x4726c5
mov eax, dword [ebp + 8]
xor edx, edx
cmp byte [eax], dl
sete dl
test edx, edx
je 0x4726c5
mov eax, dword [ebp - 0x24]
lea ecx, [ebx + 0xc]
mov dword [ebx + 8], eax
call fcn.004779e0
jmp 0x4726c5
push 0x28
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0xb
test eax, eax
je 0x4723b5
mov ecx, eax
call fcn.0046caa0
mov ebx, eax
mov dword [ebp - 0x14], eax
jmp 0x4723ba
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x14]
push ebx
call fcn.00477680
mov eax, 0x3f
mov word [ebp - 0x34], ax
lea eax, [ebp - 0x34]
push eax
lea ecx, [esi + 0xb8]
mov dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
call fcn.0046e170
mov ecx, esi
test eax, eax
je 0x47240e
mov edi, dword [ebp + 8]
push edi
call fcn.00471d60
mov dword [ebx + 0x1c], eax
jmp 0x472551
call fcn.004774e0
mov edi, dword [esi + 0xb0]
push 0xc
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0xc
test eax, eax
je 0x47244a
mov eax, dword [ebp + 8]
push 1
push dword [eax]
mov ecx, esi
call fcn.0046f820
mov ecx, dword [ebp - 0x24]
push eax
call fcn.0046bd10
jmp 0x47244c
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [esi + 0x14]
call fcn.00477680
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x1c], eax
mov eax, dword [esi + 0xb0]
push 1
sub eax, edi
lea ecx, [esi + 0x8c]
push eax
call fcn.00473c60
lea eax, [eax + edi*2]
push eax
lea ecx, [ebx + 8]
call fcn.0046eed0
lea ecx, [ebp - 0x38]
call fcn.0046c280
mov dword [ebp - 4], 0xd
cmp edi, dword [esi + 0xb0]
jge 0x4724ec
mov edi, edi
cmp edi, dword [esi + 0x94]
jl 0x4724ac
xor eax, eax
jmp 0x4724b6
mov eax, dword [esi + 0x90]
movzx eax, word [eax + edi*2]
mov dword [ebp - 0x1c], eax
mov ecx, 0xff
and cx, ax
xor edx, edx
cmp cx, word [ebp - 0x1c]
movzx eax, al
push 1
cmove edx, eax
push 1
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x38]
mov byte [ebp - 0x10], dl
call fcn.0046ee40
inc edi
cmp edi, dword [esi + 0xb0]
jl 0x4724a0
mov ebx, dword [ebp - 0x14]
lea ecx, [ebp - 0x38]
call fcn.00473c70
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00477780
add esp, 8
test eax, eax
je 0x472528
mov eax, dword [ebp - 0x1c]
xor ecx, ecx
cmp byte [eax], cl
sete cl
test ecx, ecx
je 0x472528
mov eax, dword [ebp - 0x24]
mov dword [ebx + 4], eax
mov dword [ebx + 0x1c], 0
jmp 0x472538
push ebx
lea ecx, [esi + 0x78]
mov dword [ebx + 4], 0xffffffff
call fcn.00477680
mov ecx, esi
call fcn.004774e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0046d8b0
mov edi, dword [ebp + 8]
mov eax, dword [edi]
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
mov ecx, esi
call fcn.00470fd0
mov dword [ebx + 0x20], eax
cmp word [esi + 0xa8], 0x7c
jne 0x47259e
mov ecx, esi
call fcn.004774e0
push dword [edi]
mov ecx, esi
call fcn.0046f820
mov ecx, esi
mov dword [ebx + 0x24], eax
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, esi
mov dword [ebx + 0x24], 0
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test cx, cx
je 0x4725f4
jmp 0x4725d0
movzx eax, word [esi + 0xa8]
push eax
call fcn.004b1b28
add esp, 4
test eax, eax
je 0x4725f4
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], bx
jne 0x4725d0
movzx eax, word [esi + 0xa8]
cmp eax, 0x30
jb 0x4726fa
cmp eax, 0x39
ja 0x4726fa
lea ecx, [ebp - 0x38]
call fcn.0046c280
mov dword [ebp - 4], 0xe
cmp word [esi + 0xa8], 0
je 0x472674
jmp 0x472630
movzx ecx, word [esi + 0xa8]
cmp ecx, 0x29
je 0x472674
movzx eax, cl
cmp ax, cx
jne 0x47264f
mov al, byte [esi + 0xa8]
mov byte [ebp + 8], al
jmp 0x472653
mov byte [ebp + 8], 0
push 1
push 1
lea eax, [ebp + 8]
push eax
lea ecx, [ebp - 0x38]
call fcn.0046ee40
mov ecx, esi
call fcn.004774e0
cmp word [esi + 0xa8], 0
jne 0x472630
lea ecx, [ebp - 0x38]
mov dword [ebp + 8], 0
call fcn.00473c70
mov dword [ebp - 0x24], eax
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00477780
push 0x20
call fcn.004ad19b
add esp, 0xc
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 0xf
test eax, eax
je 0x4726b6
push dword [ebp + 8]
mov ecx, eax
call fcn.0046cb80
mov ebx, eax
jmp 0x4726b8
xor ebx, ebx
mov byte [ebp - 4], 0xe
push ebx
lea ecx, [esi + 0x14]
call fcn.00477680
push ebx
lea ecx, [esi + 0x3c]
call fcn.00477680
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38]
call fcn.0046d8b0
mov ecx, esi
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [ebp + 8]
mov edi, dword [ecx]
nop
movzx eax, word [esi + 0xa8]
test ax, ax
jne 0x472715
cmp dword [esi + 0xac], 1
je 0x472793
cmp eax, 0x3a
je 0x472793
cmp eax, 0x29
je 0x472793
cmp eax, 0x28
jne 0x47272d
cmp dword [esi + 0xac], 1
je 0x472793
add eax, 0xffffffd3
xor ecx, ecx
cmp eax, 0x46
ja case.0x47273e.46
movzx eax, byte [eax + 0x4729a4]
jmp dword [eax*4 + 0x47298c]
mov ecx, 8
test ebx, ebx
je 0x472785
not ecx
and edi, ecx
mov ecx, esi
call fcn.004774e0
jmp 0x472700
mov ecx, 1
jmp case.0x47273e.46
mov ecx, 2
jmp case.0x47273e.46
mov ecx, 4
jmp case.0x47273e.46
not ecx
and edi, ecx
mov ecx, esi
mov ebx, 1
call fcn.004774e0
jmp 0x472700
or edi, ecx
mov ecx, esi
call fcn.004774e0
jmp 0x472700
movzx eax, word [esi + 0xa8]
cmp eax, 0x3a
je 0x4727df
cmp eax, 0x28
jne 0x4727ad
cmp dword [esi + 0xac], 1
je 0x4727da
mov eax, dword [ebp + 8]
push 0
mov ecx, esi
mov dword [eax], edi
call fcn.00475420
mov ecx, esi
mov ebx, eax
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, 0x3a
jne 0x4727e6
mov ecx, esi
call fcn.004774e0
push edi
mov ecx, esi
call fcn.0046f820
mov ebx, eax
mov ecx, esi
call fcn.004774e0
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x1c
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0x10
mov ebx, dword [ebp + 8]
test eax, eax
je 0x472839
mov ecx, dword [ebx]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.0046cd80
mov edi, eax
jmp 0x47283b
xor edi, edi
mov dword [ebp - 4], 0xffffffff
lea ecx, [esi + 0x14]
push edi
call fcn.00477680
inc dword [esi + 8]
mov eax, dword [esi + 8]
push 0x20
mov dword [ebp + 8], eax
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0x11
test eax, eax
je 0x472881
mov ecx, dword [ebx]
shr ecx, 4
and ecx, 1
push ecx
push dword [ebp + 8]
mov ecx, eax
call fcn.0046bfa0
jmp 0x472883
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [esi + 0x14]
call fcn.00477680
push dword [ebp - 0x1c]
lea ecx, [edi + 4]
call fcn.00477680
push dword [ebx]
mov ecx, esi
call fcn.0046f820
push eax
lea ecx, [edi + 4]
call fcn.00477680
push 0x20
call fcn.004ad19b
add esp, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 4], 0x12
test eax, eax
je 0x4728e3
mov ecx, dword [ebx]
mov ebx, dword [ebp + 8]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push ebx
mov ecx, eax
call fcn.0046bfa0
jmp 0x4728e8
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xffffffff
push eax
lea ecx, [esi + 0x14]
call fcn.00477680
push dword [ebp - 0x1c]
lea ecx, [edi + 4]
call fcn.00477680
push 0
push ebx
lea ecx, [esi + 0x28]
call fcn.00477550
mov eax, dword [esi + 0x34]
mov ecx, esi
mov dword [eax + ebx*4], edi
call fcn.004774e0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4