Function at 0x47c590
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov eax, ecx
push esi
push ebx
sub esp, 0x8c
mov ebx, dword [ecx + 4]
mov dword [esp + 0x20], ecx
mov edi, ebx
mov dword [esp + 0x24], ebx
mov ebx, dword [ecx + 8]
mov ecx, ebx
mov dword [esp + 0x18], ebx
mov ebx, edi
sub ebx, ecx
je 0x47c940
mov esi, ecx
add ecx, dword [eax]
mov edi, eax
movzx ebp, byte [ecx]
mov eax, ebp
test al, al
js 0x47c945
mov ebx, esi
movzx eax, al
add ebx, 1
mov ebp, ebx
mov dword [edi + 8], ebp
test eax, eax
mov dword [esp + 0x58], eax
je 0x47cab0
mov ebx, dword [esp + 0xa0]
cmp eax, dword [ebx + 4]
je 0x47d610
mov ebx, eax
mov eax, 0xffffffff
cmp ebx, 0x5555555
ja 0x47c611
lea eax, [ebx + ebx*2]
lea eax, [eax*8 + 8]
mov dword [esp], eax
call fcn.006eb360
mov edx, dword [esp + 0x58]
lea ebx, [eax + 8]
mov dword [eax + 4], edx
sub edx, 1
mov eax, ebx
js 0x47c643
sub edx, 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
add eax, 0x18
cmp edx, 0xffffffff
jne 0x47c62a
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
test edx, edx
je 0x47c6ad
mov eax, dword [edx - 4]
mov ebp, dword [esp + 0xa0]
lea eax, [eax + eax*2]
shl eax, 3
lea edi, [edx + eax]
cmp edx, edi
jne 0x47c672
jmp 0x47d7fc
mov edi, esi
lea esi, [edi - 0x18]
mov eax, dword [esi + 8]
test eax, eax
je 0x47c687
mov dword [esp], eax
call fcn.006eb310
mov edx, dword [ebp]
cmp esi, edx
jne 0x47c670
mov eax, dword [edi - 0x1c]
lea eax, [eax + eax*2]
shl eax, 3
add eax, 8
sub esi, 8
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.006eb320
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x58]
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 4]
mov ebp, dword [eax + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x50]
mov dword [esp + 0x54], 0
nop
lea esi, [esi]
lea eax, [eax + eax*2]
cmp ebp, dword [esp + 0x24]
lea eax, [ebx + eax*8]
mov dword [esp + 0x18], eax
jae 0x47c940
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov edx, eax
mov dword [esp + 0x38], eax
lea eax, [ebp + 1]
add ebp, edx
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [ecx + 8], eax
movzx eax, byte [ebp]
test al, 0xc0
mov byte [esp + 0x28], al
jne 0x47cab0
and eax, 0xf
cmp al, 8
ja 0x47cab0
movzx eax, al
mov ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp ecx, eax
ja 0x47cab0
test ecx, ecx
je 0x47d030
xor eax, eax
xor ecx, ecx
xor ebx, ebx
nop
movzx edx, byte [ebp + eax + 1]
mov esi, ecx
mov edi, ebx
shl esi, 8
add eax, 1
shld edi, ecx, 8
or edx, esi
cmp dword [esp + 0x10], eax
mov ebx, edi
mov ecx, edx
jne 0x47c750
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x30]
mov eax, dword [esp + 0x20]
test byte [esp + 0x28], 0x10
mov dword [eax + 8], esi
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
mov dword [eax + 4], ebx
jne 0x47cb30
mov dword [eax + 0x10], 1
mov ebx, 1
test byte [esp + 0x28], 0x20
jne 0x47cab5
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
test eax, eax
je 0x47c7c6
mov dword [esp], eax
call fcn.006eb310
mov ebx, dword [edi + 0x10]
mov dword [edi + 8], 0
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x50]
add dword [esp + 0x54], ebx
add eax, 1
cmp eax, dword [esp + 0x58]
je 0x47c802
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x50], eax
mov ecx, dword [ebx + 4]
mov ebp, dword [ebx + 8]
mov ebx, dword [esp + 0xa0]
mov dword [esp + 0x24], ecx
mov ebx, dword [ebx]
jmp 0x47c6e0
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x50]
cmp dword [ebx + 0xc], eax
je 0x47c859
test eax, eax
je 0x47d5f2
cmp eax, 0xfffffff
ja 0x47dbf2
shl eax, 3
mov dword [esp], eax
call fcn.006eb360
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 8]
test eax, eax
je 0x47c848
mov dword [esp], eax
call fcn.006eb310
mov eax, dword [esp + 0xa0]
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x50]
mov dword [eax + 0xc], ebx
mov ebx, dword [esp + 0x50]
test ebx, ebx
je 0x47d30d
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 4]
mov ebx, dword [ebx + 8]
mov dword [esp + 0x24], eax
sub eax, ebx
mov ecx, eax
je 0x47c940
mov eax, dword [esp + 0xa0]
xor ebp, ebp
mov esi, ecx
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
lea edi, [eax + ebx]
mov eax, dword [esp + 0x58]
sub eax, 2
mov dword [esp + 0x30], eax
jmp 0x47c900
mov eax, dword [esp + 0x28]
lea edx, [eax + ebx]
movzx eax, byte [edx]
test al, al
js 0x47d1a3
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
add ebx, 1
mov dword [esp + 0x4c], 0
mov dword [eax + 8], ebx
cmp dword [esp + 0x30], ebp
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x48]
mov dword [eax + ebp*8 + 4], ecx
je 0x47d2ff
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add ebp, 1
sub esi, ebx
lea edi, [eax + ebx]
je 0x47c940
movzx ecx, byte [edi]
test cl, cl
js 0x47d040
mov eax, dword [esp + 0x20]
add ebx, 1
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], 0
mov dword [eax + 8], ebx
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
mov dword [eax + ebp*8], ecx
mov ecx, dword [esp + 0x24]
sub ecx, ebx
jne 0x47c8b0
nop
lea esi, [esi]
call fcn.0047ad60
cmp ebx, 1
je 0x47c940
mov eax, ebp
xor edi, edi
test ebp, 0x40
movzx eax, al
mov dword [esp + 0x50], eax
movzx eax, byte [ecx + 1]
mov dword [esp + 0x10], eax
mov esi, eax
lea eax, [ebx - 2]
je 0x47dba7
test eax, eax
je 0x47c940
movzx eax, byte [ecx + 2]
xor edx, edx
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov edi, edx
or eax, dword [esp + 0x28]
test ebp, 0x20
mov dword [esp + 0x2c], edx
mov esi, eax
lea eax, [ebx - 3]
je 0x47dc45
test eax, eax
je 0x47c940
movzx eax, byte [ecx + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x14], edx
mov edx, eax
mov dword [esp + 0x10], eax
or edx, esi
mov eax, edx
mov edx, dword [esp + 0x14]
mov esi, eax
lea eax, [ebx - 4]
or edx, edi
test ebp, 0x10
mov edi, edx
je 0x47dc33
test eax, eax
je 0x47c940
movzx eax, byte [ecx + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x14], edx
mov edx, eax
mov dword [esp + 0x10], eax
or edx, esi
mov eax, edx
mov edx, dword [esp + 0x14]
mov esi, eax
lea eax, [ebx - 5]
or edx, edi
test ebp, 8
mov edi, edx
je 0x47dc24
test eax, eax
je 0x47c940
movzx edx, byte [ecx + 5]
lea eax, [ebx - 6]
or edx, edi
test ebp, 4
mov edi, edx
je 0x47dc15
test eax, eax
je 0x47c940
movzx eax, byte [ecx + 6]
shl eax, 8
or eax, edi
test ebp, 2
mov edi, eax
lea eax, [ebx - 7]
je 0x47dc06
test eax, eax
je 0x47c940
movzx eax, byte [ecx + 7]
shl eax, 0x10
or eax, edi
and ebp, 1
mov edi, eax
je 0x47dbf7
cmp ebx, 8
je 0x47c940
movzx eax, byte [ecx + 8]
mov ebp, 9
shl eax, 0x18
mov ecx, eax
mov eax, esi
or ecx, edi
mov edx, ecx
add ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
cmp edx, 0
mov dword [ebx + 8], ebp
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47c5dc
nop
lea esi, [esi]
call fcn.0047ad90
mov ebp, dword [esp + 0x24]
sub ebp, esi
je 0x47c940
mov edi, dword [esp + 0x38]
add edi, esi
movzx ecx, byte [edi]
test cl, cl
js 0x47cbf1
mov eax, dword [esp + 0x20]
add esi, 1
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0
mov dword [eax + 8], esi
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x70]
cmp edi, dword [eax + 0xc]
je 0x47d019
mov ebx, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x47cb11
mov dword [esp], eax
call fcn.006eb310
mov dword [ebx + 8], 0
mov eax, dword [esp + 0x18]
test edi, edi
mov dword [eax + 0xc], 0
jne 0x47cba3
mov ebx, dword [eax + 0x10]
jmp 0x47c7d1
mov edi, dword [esp + 0x24]
sub edi, esi
je 0x47c940
mov eax, dword [esp + 0x38]
lea ebx, [eax + esi]
movzx ecx, byte [ebx]
test cl, cl
js 0x47cebe
movzx eax, cl
lea ecx, [esi + 1]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov ebx, eax
sub ebp, ecx
mov dword [edi + 0x10], eax
je 0x47c940
mov eax, dword [esp + 0x38]
lea esi, [eax + ecx]
movzx edi, byte [esi]
mov eax, edi
test al, al
js 0x47cd54
mov eax, dword [esp + 0x20]
lea esi, [ecx + 1]
mov dword [eax + 8], esi
jmp 0x47c79e
mov dword [esp], edi
call fcn.006eb360
mov ebx, dword [esp + 0x18]
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], edi
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [esp + 0x24], ecx
mov edx, ecx
sub edx, esi
cmp edi, edx
ja 0x47c940
mov ebx, dword [esp + 0x20]
add esi, dword [ebx]
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
add dword [ebx + 8], edi
mov eax, dword [esp + 0x18]
jmp 0x47cb24
cmp ebp, 1
je 0x47c940
movzx eax, word [edi + 1]
test cl, 0x40
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
movzx eax, byte [edi + 1]
je 0x47da00
cmp ebp, 2
je 0x47c940
test cl, 0x20
je 0x47d9c4
cmp ebp, 3
je 0x47c940
movzx eax, byte [edi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x28]
test cl, 0x10
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x47da83
cmp ebp, 4
je 0x47c940
movzx eax, byte [edi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x2c]
or edx, dword [esp + 0x14]
test cl, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x47da68
cmp ebp, 5
je 0x47c940
movzx edx, byte [edi + 5]
or edx, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], edx
je 0x47da47
cmp ebp, 6
je 0x47c940
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47da29
cmp ebp, 7
je 0x47c940
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47db8d
cmp ebp, 8
je 0x47c940
movzx eax, byte [edi + 8]
mov ebp, dword [esp + 0x14]
mov ecx, 9
mov edi, dword [esp + 0x10]
shl eax, 0x18
mov dword [esp + 0x70], edi
or eax, ebp
mov dword [esp + 0x74], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x20]
add esi, ecx
cmp edx, 0
mov dword [eax + 8], esi
mov eax, dword [esp + 0x70]
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47cae8
call fcn.0047ad90
cmp ebp, 1
je 0x47c940
movzx eax, word [esi + 1]
test edi, 0x40
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], eax
movzx eax, byte [esi + 1]
je 0x47db5d
cmp ebp, 2
je 0x47c940
test edi, 0x20
je 0x47db39
cmp ebp, 3
je 0x47c940
movzx eax, byte [esi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
or eax, dword [esp + 0x30]
test edi, 0x10
mov dword [esp + 0x7c], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x47db15
cmp ebp, 4
je 0x47c940
movzx eax, byte [esi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x34]
or edx, dword [esp + 0x14]
test edi, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x47daf9
cmp ebp, 5
je 0x47c940
movzx edx, byte [esi + 5]
or edx, dword [esp + 0x14]
test edi, 4
mov dword [esp + 0x14], edx
je 0x47dad7
cmp ebp, 6
je 0x47c940
mov edx, eax
movzx eax, byte [esi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test edi, 2
mov dword [esp + 0x14], eax
je 0x47dab5
cmp ebp, 7
je 0x47c940
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and edi, 1
mov dword [esp + 0x14], eax
je 0x47daa3
cmp ebp, 8
je 0x47c940
movzx eax, byte [esi + 8]
mov edi, dword [esp + 0x10]
mov esi, 9
mov ebp, dword [esp + 0x14]
mov edx, edi
shl eax, 0x18
or eax, ebp
add esi, ecx
mov ecx, dword [esp + 0x20]
cmp eax, 0
mov dword [ecx + 8], esi
ja 0x47cab0
cmp edx, 0x7fffffff
jbe 0x47c79e
call fcn.0047ad90
cmp edi, 1
je 0x47c940
movzx ebp, word [ebx + 1]
test cl, 0x40
mov dword [esp + 0x14], 0
movzx eax, byte [ebx + 1]
mov dword [esp + 0x10], ebp
je 0x47d961
cmp edi, 2
je 0x47c940
test cl, 0x20
je 0x47d945
cmp edi, 3
je 0x47c940
movzx eax, byte [ebx + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x30], eax
or ebp, dword [esp + 0x30]
test cl, 0x10
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ebp
je 0x47d92c
cmp edi, 4
je 0x47c940
movzx eax, byte [ebx + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x30], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x34]
or edx, dword [esp + 0x14]
test cl, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x47d918
cmp edi, 5
je 0x47c940
movzx edx, byte [ebx + 5]
or edx, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], edx
je 0x47d8fe
cmp edi, 6
je 0x47c940
movzx eax, byte [ebx + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47d8e4
cmp edi, 7
je 0x47c940
movzx eax, byte [ebx + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47d8be
cmp edi, 8
je 0x47c940
movzx eax, byte [ebx + 8]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
shl eax, 0x18
mov dword [esp + 0x68], ecx
mov ecx, 9
or eax, ebx
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x20]
add ecx, esi
cmp edx, 0
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x68]
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47cb6b
call fcn.0047ad90
test edi, edi
je 0x47c7d1
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x24]
jmp 0x47cbc5
xor ecx, ecx
xor ebx, ebx
jmp 0x47c76f
cmp esi, 1
je 0x47c940
movzx eax, word [edi + 1]
test cl, 0x40
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], eax
movzx eax, byte [edi + 1]
je 0x47d7d0
cmp esi, 2
je 0x47c940
test cl, 0x20
je 0x47d7b0
cmp esi, 3
je 0x47c940
movzx eax, byte [edi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
or eax, dword [esp + 0x38]
test cl, 0x10
mov dword [esp + 0x5c], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x47d790
cmp esi, 4
je 0x47c940
movzx eax, byte [edi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x38], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x3c]
or edx, dword [esp + 0x14]
test cl, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x47d778
cmp esi, 5
je 0x47c940
movzx eax, byte [edi + 5]
or eax, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], eax
je 0x47d75a
cmp esi, 6
je 0x47c940
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47d73c
cmp esi, 7
je 0x47c940
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47d706
cmp esi, 8
je 0x47c940
movzx eax, byte [edi + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
shl eax, 0x18
mov dword [esp + 0x40], edx
or eax, ecx
mov ecx, 9
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
add ebx, ecx
cmp edx, 0
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x40]
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47c921
call fcn.0047ad90
cmp ecx, 1
je 0x47c940
movzx edi, word [edx + 1]
test al, 0x40
mov dword [esp + 0x14], 0
movzx esi, byte [edx + 1]
mov dword [esp + 0x38], edi
mov dword [esp + 0x10], edi
je 0x47d6d7
cmp ecx, 2
je 0x47c940
test al, 0x20
je 0x47d6b9
cmp ecx, 3
je 0x47c940
movzx esi, byte [edx + 3]
xor edi, edi
shld edi, esi, 0x10
shl esi, 0x10
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x58]
or esi, dword [esp + 0x38]
test al, 0x10
mov dword [esp + 0x5c], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
je 0x47d69b
cmp ecx, 4
je 0x47c940
movzx esi, byte [edx + 4]
xor edi, edi
shld edi, esi, 0x18
shl esi, 0x18
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x38], esi
or edi, esi
mov esi, edi
mov edi, dword [esp + 0x3c]
or edi, dword [esp + 0x14]
test al, 8
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
je 0x47d685
cmp ecx, 5
je 0x47c940
movzx esi, byte [edx + 5]
or esi, dword [esp + 0x14]
test al, 4
mov dword [esp + 0x14], esi
je 0x47d669
cmp ecx, 6
je 0x47c940
movzx esi, byte [edx + 6]
shl esi, 8
or esi, dword [esp + 0x14]
test al, 2
mov dword [esp + 0x14], esi
je 0x47d64d
cmp ecx, 7
je 0x47c940
movzx esi, byte [edx + 7]
shl esi, 0x10
or esi, dword [esp + 0x14]
test al, 1
mov dword [esp + 0x14], esi
je 0x47d617
cmp ecx, 8
je 0x47c940
movzx eax, byte [edx + 8]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
shl eax, 0x18
mov dword [esp + 0x48], edx
or eax, ecx
mov ecx, 9
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x20]
add ebx, ecx
cmp edx, 0
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x48]
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47c8d8
call fcn.0047ad90
mov ebx, dword [esp + 0x50]
cmp dword [esp + 0x54], ebx
jb 0x47cab0
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x50]
cmp eax, dword [ebx + 0x14]
mov dword [esp + 0x24], eax
je 0x47d36e
test eax, eax
je 0x47d5f9
cmp eax, 0x1fffffff
ja 0x47dbf2
shl eax, 2
mov dword [esp], eax
call fcn.006eb360
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x47d35b
mov dword [esp], eax
call fcn.006eb310
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x10], ebx
mov ebx, dword [esp + 0x24]
mov dword [eax + 0x14], ebx
mov eax, ebx
cmp eax, 1
je 0x47d593
test eax, eax
je 0x47d5e5
mov eax, dword [esp + 0x20]
mov ebp, dword [eax + 8]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
sub eax, ebp
mov dword [esp + 0x18], eax
je 0x47c940
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
mov ebx, dword [eax]
lea ecx, [ebx + ebp]
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov esi, ecx
mov ecx, eax
movzx edi, byte [esi]
mov eax, edi
test al, al
js 0x47d412
movzx edi, al
add ebp, 1
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], edi
mov dword [ecx + 8], ebp
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x60]
mov dword [eax + ebx*4], edx
add ebx, 1
cmp dword [esp + 0x24], ebx
je 0x47d5e5
mov ebp, dword [ecx + 8]
mov eax, dword [esp + 0x20]
lea esi, [eax + ebp]
mov eax, dword [ecx + 4]
sub eax, ebp
mov dword [esp + 0x18], eax
je 0x47c940
movzx edi, byte [esi]
mov eax, edi
test al, al
jns 0x47d3c3
mov edx, dword [esp + 0x18]
cmp edx, 1
je 0x47c940
movzx eax, word [esi + 1]
test edi, 0x40
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
movzx eax, byte [esi + 1]
je 0x47d803
cmp edx, 2
je 0x47c940
test edi, 0x20
je 0x47d89e
cmp dword [esp + 0x18], 3
je 0x47c940
movzx eax, byte [esi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
or eax, dword [esp + 0x28]
test edi, 0x10
mov dword [esp + 0x34], edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], eax
je 0x47d881
cmp dword [esp + 0x18], 4
je 0x47c940
movzx eax, byte [esi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x2c]
or edx, dword [esp + 0x14]
test edi, 8
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
je 0x47d869
cmp dword [esp + 0x18], 5
je 0x47c940
movzx eax, byte [esi + 5]
or eax, dword [esp + 0x14]
test edi, 4
mov dword [esp + 0x14], eax
je 0x47d84b
cmp dword [esp + 0x18], 6
je 0x47c940
movzx eax, byte [esi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test edi, 2
mov dword [esp + 0x14], eax
je 0x47d9a3
cmp dword [esp + 0x18], 7
je 0x47c940
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and edi, 1
mov dword [esp + 0x14], eax
je 0x47d989
cmp dword [esp + 0x18], 8
je 0x47c940
movzx eax, byte [esi + 8]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
shl eax, 0x18
mov dword [esp + 0x60], esi
mov esi, 9
or eax, edi
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0x64]
add ebp, esi
mov eax, dword [esp + 0x60]
mov dword [ecx + 8], ebp
cmp edx, 0
ja 0x47cab0
cmp eax, 0x7fffffff
jbe 0x47d3d8
call fcn.0047ad90
mov eax, dword [esp + 0x54]
test eax, eax
je 0x47cab0
mov ebx, dword [esp + 0xa0]
mov edi, dword [esp + 0xa0]
xor edx, edx
mov esi, eax
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x47d5cf
mov ecx, dword [edi + 8]
cmp dword [ecx], edx
je 0x47d604
xor eax, eax
jmp 0x47d5c8
cmp dword [ecx + eax*8], edx
je 0x47d600
add eax, 1
cmp eax, ebx
jne 0x47d5c3
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x54], edx
mov eax, dword [eax + 0x10]
mov dword [eax], edx
je 0x47cab0
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret 4
xor ebx, ebx
jmp 0x47c832
xor ebx, ebx
jmp 0x47d345
test eax, eax
js 0x47d5cf
add edx, 1
cmp esi, edx
jne 0x47d5b4
call fcn.0047ad90
mov ebx, dword [ebx]
jmp 0x47c6c4
mov ecx, 8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
or edi, eax
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x3c]
or edi, edx
mov dword [esp + 0x4c], edi
jmp 0x47d2d5
and eax, 1
mov ecx, 7
mov edx, eax
mov eax, 0
shl edx, 0x10
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
and eax, 3
mov ecx, 6
mov edx, eax
mov eax, 0
shl edx, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
and eax, 7
mov ecx, 5
mov edx, eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
and eax, 0xf
xor edx, edx
mov ecx, 4
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
and eax, 0x1f
xor edx, edx
mov ecx, 3
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
mov edx, esi
and eax, 0x3f
mov dword [esp + 0x14], 0
movzx esi, dl
xor edx, edx
mov ecx, 2
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d62c
mov ecx, 8
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
or edi, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x3c]
or edi, edx
mov dword [esp + 0x44], edi
jmp 0x47d179
mov eax, ecx
mov ecx, 7
and eax, 1
mov edx, eax
mov eax, 0
shl edx, 0x10
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov eax, ecx
mov ecx, 6
and eax, 3
mov edx, eax
mov eax, 0
shl edx, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov eax, ecx
mov ecx, 5
and eax, 7
mov edx, eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov eax, ecx
xor edx, edx
mov ecx, 4
and eax, 0xf
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov eax, ecx
xor edx, edx
mov ecx, 3
and eax, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov dword [esp + 0x10], eax
mov eax, ecx
xor edx, edx
and eax, 0x3f
mov dword [esp + 0x14], 0
mov ecx, 2
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d71b
mov esi, edx
jmp 0x47c694
mov dword [esp + 0x10], eax
mov eax, edi
xor edx, edx
and eax, 0x3f
mov dword [esp + 0x14], 0
mov esi, 2
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
or edi, eax
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x1c]
or edi, edx
mov dword [esp + 0x64], edi
jmp 0x47d56d
mov eax, edi
mov esi, 6
and eax, 3
mov edx, eax
mov eax, 0
shl edx, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x47d82a
mov eax, edi
mov esi, 5
and eax, 7
mov edx, eax
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x47d82a
mov eax, edi
xor edx, edx
mov esi, 4
and eax, 0xf
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x47d82a
mov eax, edi
xor edx, edx
mov esi, 3
and eax, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x47d82a
mov ecx, 8
xor edi, edi
xor ebp, ebp
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, eax
or ebx, edi
mov dword [esp + 0x68], ebx
mov ebx, ebp
or ebx, edx
mov dword [esp + 0x6c], ebx
jmp 0x47cfef
mov eax, ecx
mov ecx, 7
and eax, 1
mov edx, eax
mov eax, 0
shl edx, 0x10
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov eax, ecx
mov ecx, 6
and eax, 3
mov edx, eax
mov eax, 0
shl edx, 8
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov eax, ecx
mov ecx, 5
and eax, 7
mov edx, eax
xor eax, eax
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov eax, ecx
xor edx, edx
mov ecx, 4
and eax, 0xf
shld edx, eax, 0x18
shl eax, 0x18
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov eax, ecx
xor edx, edx
mov ecx, 3
and eax, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov dword [esp + 0x10], eax
mov eax, ecx
xor edx, edx
and eax, 0x3f
mov dword [esp + 0x14], 0
mov ecx, 2
shld edx, eax, 8
shl eax, 8
mov edi, eax
mov ebp, edx
jmp 0x47d8c7
mov esi, 8
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
jmp 0x47d82a
mov eax, edi
mov esi, 7
and eax, 1
mov edx, eax
mov eax, 0
shl edx, 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
jmp 0x47d82a
mov eax, ecx
xor edx, edx
mov ecx, 3
and eax, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
or edi, eax
mov dword [esp + 0x70], edi
mov edi, dword [esp + 0x2c]
or edi, edx
mov dword [esp + 0x74], edi
jmp 0x47cd2a
mov dword [esp + 0x10], eax
mov eax, ecx
xor edx, edx
and eax, 0x3f
mov dword [esp + 0x14], 0
mov ecx, 2
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47d9df
mov eax, ecx
mov ecx, 7
and eax, 1
mov edx, eax
mov eax, 0
shl edx, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47d9df
mov eax, ecx
mov ecx, 6
and eax, 3
mov edx, eax
mov eax, 0
shl edx, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47d9df
mov eax, ecx
mov ecx, 5
and eax, 7
mov edx, eax
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47d9df
mov eax, ecx
xor edx, edx
mov ecx, 4
and eax, 0xf
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x47d9df
mov esi, 8
xor edi, edi
xor ebp, ebp
or edx, edi
or eax, ebp
jmp 0x47ce9b
mov eax, edi
mov esi, 7
and eax, 1
mov edx, eax
mov eax, 0
shl edx, 0x10
mov edi, eax
mov eax, dword [esp + 0x14]
mov ebp, edx
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov eax, edi
mov esi, 6
and eax, 3
mov edx, eax
mov eax, 0
shl edx, 8
mov edi, eax
mov eax, dword [esp + 0x14]
mov ebp, edx
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov eax, edi
mov esi, 5
and eax, 7
mov edx, eax
xor eax, eax
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov eax, edi
xor edx, edx
mov esi, 4
and eax, 0xf
shld edx, eax, 0x18
shl eax, 0x18
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov eax, edi
xor edx, edx
mov esi, 3
and eax, 0x1f
shld edx, eax, 0x10
shl eax, 0x10
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov dword [esp + 0x10], eax
mov eax, edi
xor edx, edx
and eax, 0x3f
mov dword [esp + 0x14], 0
mov esi, 2
shld edx, eax, 8
shl eax, 8
mov edi, eax
mov ebp, edx
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
jmp 0x47daac
mov ecx, 8
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jmp 0x47d9df
mov dword [esp + 0x10], 1
mov eax, 0x40
mov ebp, dword [esp + 0x10]
sub eax, 1
and eax, dword [esp + 0x50]
xor edx, edx
lea ebx, [ebp*8]
xor ebp, ebp
mov ecx, ebx
shld edx, eax, cl
shl eax, cl
test bl, 0x20
cmovne edx, eax
cmovne eax, ebp
mov ebp, eax
mov ebx, edx
or ebp, esi
or ebx, edi
mov eax, ebp
mov ebp, dword [esp + 0x10]
mov edx, ebx
add ebp, 1
jmp 0x47ca90
call fcn.006ebc70
mov dword [esp + 0x10], 7
mov eax, 1
jmp 0x47dbb4
mov dword [esp + 0x10], 6
mov eax, 2
jmp 0x47dbb4
mov dword [esp + 0x10], 5
mov eax, 4
jmp 0x47dbb4
mov dword [esp + 0x10], 4
mov eax, 8
jmp 0x47dbb4
mov dword [esp + 0x10], 3
mov eax, 0x10
jmp 0x47dbb4
mov dword [esp + 0x10], 2
mov eax, 0x20
jmp 0x47dbb4