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

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x522b64
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00479480
cmp byte [esi + 0xa8], 0x3f
jne 0x47c892
cmp dword [esi + 0xac], 1
jne 0x47c892
mov ecx, esi
call fcn.00479480
mov cl, byte [esi + 0xa8]
movsx eax, cl
add eax, 0xffffffdf
xor ebx, ebx
cmp eax, 0x31
mov byte [esp + 0x13], 0x3e
ja case.0x47beeb.41
movzx eax, byte [eax + 0x47c9f0]
mov ebp, dword [esp + 0x50]
jmp dword [eax*4 + 0x47c9cc]
mov ebx, 1
mov ecx, esi
call fcn.00479480
push 0xc
call fcn.00507ead
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
mov dword [esp + 0x48], 0
je 0x47c1eb
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
and edx, 0xffffffef
push edx
mov ecx, esi
call fcn.0047bd60
mov dword [edi + 4], eax
xor eax, eax
test ebx, ebx
sete al
mov dword [edi], 0x535bb0
mov dword [edi + 8], eax
jmp 0x47c1ed
mov al, byte [esi + 0xb8]
cmp al, 0x21
je 0x47bf57
cmp al, 0x3d
je 0x47bf5c
jmp case.0x47beeb.39
mov ebx, 1
mov ecx, esi
call fcn.00479480
mov ecx, esi
call fcn.00479480
push 0xc
call fcn.00507ead
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
mov dword [esp + 0x48], 1
je 0x47bfa9
mov ecx, dword [ebp]
or ecx, 0x10
push ecx
mov ecx, esi
call fcn.0047bd60
xor edx, edx
test ebx, ebx
sete dl
mov dword [edi], 0x535bb0
mov dword [edi + 4], eax
mov dword [edi + 8], edx
jmp 0x47bfab
xor edi, edi
push edi
mov ecx, esi
mov dword [esp + 0x4c], 0xffffffff
call fcn.004780a0
mov edi, eax
test edi, edi
jne 0x47c874
xor ebx, ebx
cmp byte [esi + 0xa8], 0x50
jne case.0x47beeb.34
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
cmp al, 0x3c
jne 0x47bfe8
mov byte [esp + 0x13], 0x3e
jmp 0x47bff0
cmp al, 0x27
jne 0x47bff0
mov byte [esp + 0x13], al
mov ecx, esi
call fcn.00479480
mov eax, dword [esi + 0xc]
mov dword [esp + 0x28], eax
inc eax
push 0x1c
mov dword [esi + 0xc], eax
call fcn.00507ead
add esp, 4
cmp eax, ebx
je 0x47c020
mov ecx, dword [ebp]
and ecx, 0x10
push ecx
mov ecx, eax
call fcn.00478200
jmp 0x47c022
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
push 0x20
mov dword [esp + 0x28], eax
call fcn.00507ead
add esp, 4
cmp eax, ebx
je 0x47c051
mov edx, dword [ebp]
shr edx, 4
and edx, 1
push edx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00478ad0
jmp 0x47c053
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
push 0x20
mov ebx, eax
call fcn.00507ead
add esp, 4
test eax, eax
je 0x47c082
mov ecx, dword [ebp]
shr ecx, 4
not ecx
and ecx, 1
push ecx
push 0xffffffffffffffff
mov ecx, eax
call fcn.00478ad0
jmp 0x47c084
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov dword [esp + 0x1c], eax
xor eax, eax
lea edi, [ebx + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], 0x535ad4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov al, byte [esi + 0xa8]
test al, al
mov dword [esp + 0x48], 2
je 0x47c10d
nop
mov al, byte [esi + 0xa8]
cmp al, byte [esp + 0x13]
je 0x47c10d
push 1
push 1
lea edx, [esp + 0x1c]
push edx
mov ecx, edi
mov byte [esp + 0x20], al
call fcn.004773c0
mov al, byte [esi + 0xa8]
push 1
push 1
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x20], al
call fcn.004773c0
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c0c0
mov ecx, esi
call fcn.00479480
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x18], eax
jne 0x47c128
mov dword [esp + 0x18], 0x54937c
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00477310
add esp, 8
test eax, eax
je 0x47c164
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx]
xor eax, eax
test dl, dl
sete al
test eax, eax
je 0x47c164
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [ebx + 4], eax
mov ecx, edi
mov dword [edx + 4], eax
call fcn.00478770
mov edi, dword [esp + 0x24]
lea ebp, [edi + 4]
push ebx
mov ecx, ebp
call fcn.004775c0
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.0047bd60
push eax
mov ecx, ebp
call fcn.004775c0
mov edx, dword [esp + 0x1c]
push edx
mov ecx, ebp
call fcn.004775c0
mov ebx, dword [esp + 0x28]
push 0
push ebx
lea ecx, [esi + 0x50]
call fcn.00477520
mov eax, dword [esi + 0x5c]
mov dword [eax + ebx*4], edi
jmp 0x47c31d
mov ecx, esi
call fcn.00479480
push 8
call fcn.00507ead
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
mov dword [esp + 0x48], 3
je 0x47c1eb
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.0047bd60
mov dword [edi], 0x535bc8
mov dword [edi + 4], eax
jmp 0x47c1ed
xor edi, edi
push edi
mov ecx, esi
mov dword [esp + 0x4c], 0xffffffff
call fcn.004780a0
mov ecx, esi
mov edi, eax
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
je 0x47c255
mov edi, edi
movsx eax, byte [esi + 0xa8]
push eax
call fcn.004a4dc7
add esp, 4
test eax, eax
je 0x47c255
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c230
mov al, byte [esi + 0xa8]
cmp al, 0x3c
je 0x47c34e
cmp al, 0x27
je 0x47c34c
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], 0x535ad4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
test al, al
mov dword [esp + 0x48], 5
je 0x47c2c1
nop
mov al, byte [esi + 0xa8]
cmp al, 0x29
je 0x47c2c1
push 1
push 1
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x5c], al
call fcn.004773c0
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c290
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x50], eax
jne 0x47c2dd
mov dword [esp + 0x50], 0x54937c
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00477310
push 0x20
call fcn.00507ead
add esp, 0xc
test eax, eax
je 0x47c308
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.00478b50
jmp 0x47c30a
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov edi, eax
push edi
lea ecx, [esi + 0x3c]
call fcn.004775c0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x48], 0xffffffff
call fcn.00477100
mov ecx, esi
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
cmp al, 0x3c
setne bl
dec bl
and bl, 0x17
push 0x20
add bl, 0x27
call fcn.00507ead
add esp, 4
test eax, eax
je 0x47c372
push 0xfffffffffffffffd
mov ecx, eax
call fcn.00478b50
jmp 0x47c374
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov ecx, esi
mov ebp, eax
call fcn.00479480
xor eax, eax
lea edi, [ebp + 0xc]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], 0x535ad4
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov al, byte [esi + 0xa8]
test al, al
mov dword [esp + 0x48], 4
je 0x47c3ff
mov al, byte [esi + 0xa8]
cmp al, bl
je 0x47c3ff
push 1
push 1
lea edx, [esp + 0x58]
push edx
mov ecx, edi
mov byte [esp + 0x5c], al
call fcn.004773c0
mov al, byte [esi + 0xa8]
push 1
push 1
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x5c], al
call fcn.004773c0
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c3b4
mov ecx, esi
call fcn.00479480
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x50], eax
jne 0x47c41a
mov dword [esp + 0x50], 0x54937c
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00477310
add esp, 8
test eax, eax
je 0x47c44f
mov ecx, dword [esp + 0x50]
mov dl, byte [ecx]
xor eax, eax
test dl, dl
sete al
test eax, eax
je 0x47c44f
mov edx, dword [esp + 0x28]
mov ecx, edi
mov dword [ebp + 8], edx
call fcn.00478770
push ebp
lea ecx, [esi + 0x3c]
call fcn.004775c0
mov edi, ebp
jmp 0x47c31d
push 0x28
call fcn.00507ead
add esp, 4
cmp eax, ebx
je 0x47c476
mov ecx, eax
call fcn.00478bc0
jmp 0x47c478
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov ebx, eax
lea eax, [esp + 0x2c]
xor ebp, ebp
push eax
lea ecx, [esi + 0xb8]
mov byte [esp + 0x30], 0x3f
mov dword [esp + 0x34], 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
call fcn.00477150
test eax, eax
mov ecx, esi
je 0x47c4c1
mov edi, dword [esp + 0x50]
push edi
call fcn.0047be80
mov dword [ebx + 0x1c], eax
jmp 0x47c60e
call fcn.00479480
mov ebp, dword [esi + 0xb0]
push 0xc
call fcn.00507ead
mov edi, eax
add esp, 4
mov dword [esp + 0x28], edi
test edi, edi
mov dword [esp + 0x48], 6
je 0x47c50c
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx]
push edx
mov ecx, esi
call fcn.0047bd60
mov dword [edi + 4], eax
mov dword [edi], 0x535bb0
mov dword [edi + 8], 1
mov eax, edi
xor edi, edi
jmp 0x47c510
xor edi, edi
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov dword [ebx + 0x1c], eax
mov eax, dword [esi + 0x90]
cmp eax, edi
jne 0x47c52a
mov eax, 0x54937c
mov ecx, dword [esi + 0xb0]
push 1
sub ecx, ebp
push ecx
add eax, ebp
push eax
lea ecx, [ebx + 8]
call fcn.004773c0
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], 0x535ad4
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edi
cmp ebp, dword [esi + 0xb0]
mov dword [esp + 0x48], 7
jge 0x47c5aa
cmp ebp, dword [esi + 0x94]
jl 0x47c574
xor al, al
jmp 0x47c57d
mov edx, dword [esi + 0x90]
mov al, byte [edx + ebp]
push 1
mov byte [esp + 0x18], al
push 1
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x38]
call fcn.004773c0
mov eax, dword [esi + 0xb0]
inc ebp
cmp ebp, eax
jl 0x47c568
mov eax, dword [esp + 0x38]
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x47c5b2
mov dword [esp + 0x18], 0x54937c
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x1c]
push edx
call fcn.00477310
add esp, 8
or ebp, 0xffffffff
test eax, eax
je 0x47c5e8
mov ecx, dword [esp + 0x18]
mov dl, byte [ecx]
xor eax, eax
test dl, dl
sete al
cmp eax, edi
je 0x47c5e8
mov edx, dword [esp + 0x28]
mov dword [ebx + 4], edx
mov dword [ebx + 0x1c], edi
jmp 0x47c5f4
push ebx
lea ecx, [esi + 0x78]
mov dword [ebx + 4], ebp
call fcn.004775c0
mov ecx, esi
call fcn.00479480
lea ecx, [esp + 0x2c]
mov dword [esp + 0x48], ebp
call fcn.00477100
mov edi, dword [esp + 0x50]
xor ebp, ebp
mov eax, dword [edi]
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
mov dword [esp + 0x54], eax
call fcn.0047ba10
mov dword [ebx + 0x20], eax
cmp byte [esi + 0xa8], 0x7c
jne 0x47c660
mov ecx, esi
call fcn.00479480
mov edx, dword [edi]
push edx
mov ecx, esi
call fcn.0047bd60
mov ecx, esi
mov dword [ebx + 0x24], eax
mov edi, ebx
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
mov ecx, esi
mov dword [ebx + 0x24], ebp
mov edi, ebx
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
test cl, cl
je 0x47c6b5
jmp 0x47c690
movsx eax, byte [esi + 0xa8]
push eax
call fcn.004a4dc7
add esp, 4
test eax, eax
je 0x47c6b5
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c690
mov al, byte [esi + 0xa8]
cmp al, 0x30
jl 0x47c76f
cmp al, 0x39
jg 0x47c76f
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], 0x535ad4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ebx
test al, al
mov dword [esp + 0x48], 8
je 0x47c721
nop
mov al, byte [esi + 0xa8]
cmp al, 0x29
je 0x47c721
push 1
push 1
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x38]
mov byte [esp + 0x5c], al
call fcn.004773c0
mov ecx, esi
call fcn.00479480
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c6f0
mov eax, dword [esp + 0x38]
test eax, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x50], eax
jne 0x47c73d
mov dword [esp + 0x50], 0x54937c
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x54]
push eax
call fcn.00477310
push 0x20
call fcn.00507ead
add esp, 0xc
test eax, eax
je 0x47c308
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, eax
call fcn.00478b50
jmp 0x47c30a
mov edx, dword [esp + 0x50]
mov edi, dword [edx]
mov ebp, 1
lea ebx, [ebx]
mov al, byte [esi + 0xa8]
test al, al
jne 0x47c796
cmp dword [esi + 0xac], ebp
je 0x47c817
mov cl, byte [esi + 0xa8]
cmp cl, 0x3a
je 0x47c817
cmp cl, 0x29
je 0x47c817
mov al, cl
cmp al, 0x28
jne 0x47c7b4
cmp dword [esi + 0xac], ebp
je 0x47c817
movsx ecx, cl
add ecx, 0xffffffd3
xor eax, eax
cmp ecx, 0x46
ja case.0x47c7c8.46
movzx ecx, byte [ecx + 0x47ca3c]
jmp dword [ecx*4 + 0x47ca24]
mov eax, 8
test ebx, ebx
je 0x47c809
not eax
mov ecx, esi
and edi, eax
call fcn.00479480
jmp 0x47c780
mov eax, ebp
jmp case.0x47c7c8.46
mov eax, 2
jmp case.0x47c7c8.46
mov eax, 4
jmp case.0x47c7c8.46
not eax
mov ecx, esi
mov ebx, ebp
and edi, eax
call fcn.00479480
jmp 0x47c780
mov ecx, esi
or edi, eax
call fcn.00479480
jmp 0x47c780
mov al, byte [esi + 0xa8]
cmp al, 0x3a
je 0x47c863
mov cl, al
cmp cl, 0x28
jne 0x47c830
cmp dword [esi + 0xac], ebp
je 0x47c85f
mov edx, dword [esp + 0x50]
push 0
mov ecx, esi
mov dword [edx], edi
call fcn.004796f0
mov ecx, esi
mov edi, eax
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
cmp al, 0x3a
jne 0x47c86a
mov ecx, esi
call fcn.00479480
push edi
mov ecx, esi
call fcn.0047bd60
mov edi, eax
mov ecx, esi
call fcn.00479480
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret 4
push 0x1c
call fcn.00507ead
mov ebp, dword [esp + 0x54]
xor ebx, ebx
add esp, 4
cmp eax, ebx
je 0x47c8ca
mov ecx, dword [ebp]
mov dword [eax], 0x535b00
and ecx, 0x10
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 4], 0x535aec
mov dword [eax + 0x14], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x18], ecx
jmp 0x47c8cc
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
mov ecx, dword [esi + 8]
inc ecx
push 0x20
mov dword [esp + 0x20], eax
mov dword [esi + 8], ecx
mov edi, ecx
call fcn.00507ead
add esp, 4
cmp eax, ebx
je 0x47c919
mov ecx, dword [ebp]
mov dword [eax], 0x535bbc
shr ecx, 4
and ecx, 1
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0xc], 0x535ad4
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x47c91b
xor eax, eax
mov ebp, dword [esp + 0x1c]
push eax
mov ecx, esi
add ebp, 4
call fcn.004780a0
push eax
mov ecx, ebp
call fcn.004775c0
mov eax, dword [esp + 0x50]
mov ecx, dword [eax]
push ecx
mov ecx, esi
call fcn.0047bd60
push eax
mov ecx, ebp
call fcn.004775c0
push 0x20
call fcn.00507ead
add esp, 4
cmp eax, ebx
je 0x47c985
mov edx, dword [esp + 0x50]
mov ecx, dword [edx]
shr ecx, 4
mov dword [eax], 0x535bbc
not ecx
and ecx, 1
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0xc], 0x535ad4
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
jmp 0x47c987
xor eax, eax
push eax
mov ecx, esi
call fcn.004780a0
push eax
mov ecx, ebp
call fcn.004775c0
push ebx
push edi
lea ecx, [esi + 0x28]
call fcn.00477520
mov eax, dword [esi + 0x34]
mov ebx, dword [esp + 0x1c]
mov ecx, esi
mov dword [eax + edi*4], ebx
call fcn.00479480
mov ecx, dword [esp + 0x40]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov dword fs:[0], ecx
add esp, 0x3c
ret 4