Function at 0x47c360
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 0x47c710
mov esi, ecx
add ecx, dword [eax]
mov edi, eax
movzx ebp, byte [ecx]
mov eax, ebp
test al, al
js 0x47c715
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 0x47c880
mov ebx, dword [esp + 0xa0]
cmp eax, dword [ebx + 4]
je 0x47d3e0
mov ebx, eax
mov eax, 0xffffffff
cmp ebx, 0x5555555
ja 0x47c3e1
lea eax, [ebx + ebx*2]
lea eax, [eax*8 + 8]
mov dword [esp], eax
call fcn.006e98b0
mov edx, dword [esp + 0x58]
lea ebx, [eax + 8]
mov dword [eax + 4], edx
sub edx, 1
mov eax, ebx
js 0x47c413
sub edx, 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
add eax, 0x18
cmp edx, 0xffffffff
jne 0x47c3fa
mov eax, dword [esp + 0xa0]
mov edx, dword [eax]
test edx, edx
je 0x47c47d
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 0x47c442
jmp 0x47d5cc
mov edi, esi
lea esi, [edi - 0x18]
mov eax, dword [esi + 8]
test eax, eax
je 0x47c457
mov dword [esp], eax
call fcn.006e9860
mov edx, dword [ebp]
cmp esi, edx
jne 0x47c440
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.006e9870
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 0x47c710
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 0x47c880
and eax, 0xf
cmp al, 8
ja 0x47c880
movzx eax, al
mov ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
sub eax, ebx
cmp ecx, eax
ja 0x47c880
test ecx, ecx
je 0x47ce00
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 0x47c520
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 0x47c900
mov dword [eax + 0x10], 1
mov ebx, 1
test byte [esp + 0x28], 0x20
jne 0x47c885
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
test eax, eax
je 0x47c596
mov dword [esp], eax
call fcn.006e9860
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 0x47c5d2
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 0x47c4b0
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x50]
cmp dword [ebx + 0xc], eax
je 0x47c629
test eax, eax
je 0x47d3c2
cmp eax, 0xfffffff
ja 0x47d9c2
shl eax, 3
mov dword [esp], eax
call fcn.006e98b0
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 8]
test eax, eax
je 0x47c618
mov dword [esp], eax
call fcn.006e9860
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 0x47d0dd
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 0x47c710
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 0x47c6d0
mov eax, dword [esp + 0x28]
lea edx, [eax + ebx]
movzx eax, byte [edx]
test al, al
js 0x47cf73
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 0x47d0cf
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
add ebp, 1
sub esi, ebx
lea edi, [eax + ebx]
je 0x47c710
movzx ecx, byte [edi]
test cl, cl
js 0x47ce10
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 0x47c680
nop
lea esi, [esi]
call fcn.0047ab60
cmp ebx, 1
je 0x47c710
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 0x47d977
test eax, eax
je 0x47c710
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 0x47da15
test eax, eax
je 0x47c710
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 0x47da03
test eax, eax
je 0x47c710
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 0x47d9f4
test eax, eax
je 0x47c710
movzx edx, byte [ecx + 5]
lea eax, [ebx - 6]
or edx, edi
test ebp, 4
mov edi, edx
je 0x47d9e5
test eax, eax
je 0x47c710
movzx eax, byte [ecx + 6]
shl eax, 8
or eax, edi
test ebp, 2
mov edi, eax
lea eax, [ebx - 7]
je 0x47d9d6
test eax, eax
je 0x47c710
movzx eax, byte [ecx + 7]
shl eax, 0x10
or eax, edi
and ebp, 1
mov edi, eax
je 0x47d9c7
cmp ebx, 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47c3ac
nop
lea esi, [esi]
call fcn.0047ab90
mov ebp, dword [esp + 0x24]
sub ebp, esi
je 0x47c710
mov edi, dword [esp + 0x38]
add edi, esi
movzx ecx, byte [edi]
test cl, cl
js 0x47c9c1
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 0x47cde9
mov ebx, eax
mov eax, dword [eax + 8]
test eax, eax
je 0x47c8e1
mov dword [esp], eax
call fcn.006e9860
mov dword [ebx + 8], 0
mov eax, dword [esp + 0x18]
test edi, edi
mov dword [eax + 0xc], 0
jne 0x47c973
mov ebx, dword [eax + 0x10]
jmp 0x47c5a1
mov edi, dword [esp + 0x24]
sub edi, esi
je 0x47c710
mov eax, dword [esp + 0x38]
lea ebx, [eax + esi]
movzx ecx, byte [ebx]
test cl, cl
js 0x47cc8e
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 0x47c710
mov eax, dword [esp + 0x38]
lea esi, [eax + ecx]
movzx edi, byte [esi]
mov eax, edi
test al, al
js 0x47cb24
mov eax, dword [esp + 0x20]
lea esi, [ecx + 1]
mov dword [eax + 8], esi
jmp 0x47c56e
mov dword [esp], edi
call fcn.006e98b0
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 0x47c710
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 0x47c8f4
cmp ebp, 1
je 0x47c710
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 0x47d7d0
cmp ebp, 2
je 0x47c710
test cl, 0x20
je 0x47d794
cmp ebp, 3
je 0x47c710
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 0x47d853
cmp ebp, 4
je 0x47c710
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 0x47d838
cmp ebp, 5
je 0x47c710
movzx edx, byte [edi + 5]
or edx, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], edx
je 0x47d817
cmp ebp, 6
je 0x47c710
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47d7f9
cmp ebp, 7
je 0x47c710
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47d95d
cmp ebp, 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47c8b8
call fcn.0047ab90
cmp ebp, 1
je 0x47c710
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 0x47d92d
cmp ebp, 2
je 0x47c710
test edi, 0x20
je 0x47d909
cmp ebp, 3
je 0x47c710
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 0x47d8e5
cmp ebp, 4
je 0x47c710
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 0x47d8c9
cmp ebp, 5
je 0x47c710
movzx edx, byte [esi + 5]
or edx, dword [esp + 0x14]
test edi, 4
mov dword [esp + 0x14], edx
je 0x47d8a7
cmp ebp, 6
je 0x47c710
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 0x47d885
cmp ebp, 7
je 0x47c710
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and edi, 1
mov dword [esp + 0x14], eax
je 0x47d873
cmp ebp, 8
je 0x47c710
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 0x47c880
cmp edx, 0x7fffffff
jbe 0x47c56e
call fcn.0047ab90
cmp edi, 1
je 0x47c710
movzx ebp, word [ebx + 1]
test cl, 0x40
mov dword [esp + 0x14], 0
movzx eax, byte [ebx + 1]
mov dword [esp + 0x10], ebp
je 0x47d731
cmp edi, 2
je 0x47c710
test cl, 0x20
je 0x47d715
cmp edi, 3
je 0x47c710
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 0x47d6fc
cmp edi, 4
je 0x47c710
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 0x47d6e8
cmp edi, 5
je 0x47c710
movzx edx, byte [ebx + 5]
or edx, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], edx
je 0x47d6ce
cmp edi, 6
je 0x47c710
movzx eax, byte [ebx + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47d6b4
cmp edi, 7
je 0x47c710
movzx eax, byte [ebx + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47d68e
cmp edi, 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47c93b
call fcn.0047ab90
test edi, edi
je 0x47c5a1
mov eax, dword [eax + 8]
mov edx, dword [esp + 0x24]
jmp 0x47c995
xor ecx, ecx
xor ebx, ebx
jmp 0x47c53f
cmp esi, 1
je 0x47c710
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 0x47d5a0
cmp esi, 2
je 0x47c710
test cl, 0x20
je 0x47d580
cmp esi, 3
je 0x47c710
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 0x47d560
cmp esi, 4
je 0x47c710
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 0x47d548
cmp esi, 5
je 0x47c710
movzx eax, byte [edi + 5]
or eax, dword [esp + 0x14]
test cl, 4
mov dword [esp + 0x14], eax
je 0x47d52a
cmp esi, 6
je 0x47c710
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test cl, 2
mov dword [esp + 0x14], eax
je 0x47d50c
cmp esi, 7
je 0x47c710
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and ecx, 1
mov dword [esp + 0x14], eax
je 0x47d4d6
cmp esi, 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47c6f1
call fcn.0047ab90
cmp ecx, 1
je 0x47c710
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 0x47d4a7
cmp ecx, 2
je 0x47c710
test al, 0x20
je 0x47d489
cmp ecx, 3
je 0x47c710
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 0x47d46b
cmp ecx, 4
je 0x47c710
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 0x47d455
cmp ecx, 5
je 0x47c710
movzx esi, byte [edx + 5]
or esi, dword [esp + 0x14]
test al, 4
mov dword [esp + 0x14], esi
je 0x47d439
cmp ecx, 6
je 0x47c710
movzx esi, byte [edx + 6]
shl esi, 8
or esi, dword [esp + 0x14]
test al, 2
mov dword [esp + 0x14], esi
je 0x47d41d
cmp ecx, 7
je 0x47c710
movzx esi, byte [edx + 7]
shl esi, 0x10
or esi, dword [esp + 0x14]
test al, 1
mov dword [esp + 0x14], esi
je 0x47d3e7
cmp ecx, 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47c6a8
call fcn.0047ab90
mov ebx, dword [esp + 0x50]
cmp dword [esp + 0x54], ebx
jb 0x47c880
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 0x47d13e
test eax, eax
je 0x47d3c9
cmp eax, 0x1fffffff
ja 0x47d9c2
shl eax, 2
mov dword [esp], eax
call fcn.006e98b0
mov ebx, eax
mov eax, dword [esp + 0xa0]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x47d12b
mov dword [esp], eax
call fcn.006e9860
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 0x47d363
test eax, eax
je 0x47d3b5
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 0x47c710
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 0x47d1e2
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 0x47d3b5
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 0x47c710
movzx edi, byte [esi]
mov eax, edi
test al, al
jns 0x47d193
mov edx, dword [esp + 0x18]
cmp edx, 1
je 0x47c710
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 0x47d5d3
cmp edx, 2
je 0x47c710
test edi, 0x20
je 0x47d66e
cmp dword [esp + 0x18], 3
je 0x47c710
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 0x47d651
cmp dword [esp + 0x18], 4
je 0x47c710
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 0x47d639
cmp dword [esp + 0x18], 5
je 0x47c710
movzx eax, byte [esi + 5]
or eax, dword [esp + 0x14]
test edi, 4
mov dword [esp + 0x14], eax
je 0x47d61b
cmp dword [esp + 0x18], 6
je 0x47c710
movzx eax, byte [esi + 6]
shl eax, 8
or eax, dword [esp + 0x14]
test edi, 2
mov dword [esp + 0x14], eax
je 0x47d773
cmp dword [esp + 0x18], 7
je 0x47c710
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x14]
and edi, 1
mov dword [esp + 0x14], eax
je 0x47d759
cmp dword [esp + 0x18], 8
je 0x47c710
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 0x47c880
cmp eax, 0x7fffffff
jbe 0x47d1a8
call fcn.0047ab90
mov eax, dword [esp + 0x54]
test eax, eax
je 0x47c880
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 0x47d39f
mov ecx, dword [edi + 8]
cmp dword [ecx], edx
je 0x47d3d4
xor eax, eax
jmp 0x47d398
cmp dword [ecx + eax*8], edx
je 0x47d3d0
add eax, 1
cmp eax, ebx
jne 0x47d393
mov eax, dword [esp + 0xa0]
cmp dword [esp + 0x54], edx
mov eax, dword [eax + 0x10]
mov dword [eax], edx
je 0x47c880
add esp, 0x8c
pop ebx
pop esi
pop edi
pop ebp
ret 4
xor ebx, ebx
jmp 0x47c602
xor ebx, ebx
jmp 0x47d115
test eax, eax
js 0x47d39f
add edx, 1
cmp esi, edx
jne 0x47d384
call fcn.0047ab90
mov ebx, dword [ebx]
jmp 0x47c494
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 0x47d0a5
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 0x47d3fc
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 0x47d3fc
and eax, 7
mov ecx, 5
mov edx, eax
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
jmp 0x47d3fc
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 0x47d3fc
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 0x47d3fc
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 0x47d3fc
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 0x47cf49
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 0x47d4eb
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 0x47d4eb
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 0x47d4eb
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 0x47d4eb
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 0x47d4eb
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 0x47d4eb
mov esi, edx
jmp 0x47c464
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 0x47d33d
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 0x47d5fa
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 0x47d5fa
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 0x47d5fa
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 0x47d5fa
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 0x47cdbf
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 0x47d697
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 0x47d697
mov eax, ecx
mov ecx, 5
and eax, 7
mov edx, eax
xor eax, eax
mov edi, eax
mov ebp, edx
jmp 0x47d697
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 0x47d697
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 0x47d697
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 0x47d697
mov esi, 8
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
jmp 0x47d5fa
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 0x47d5fa
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 0x47cafa
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 0x47d7af
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 0x47d7af
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 0x47d7af
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 0x47d7af
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 0x47d7af
mov esi, 8
xor edi, edi
xor ebp, ebp
or edx, edi
or eax, ebp
jmp 0x47cc6b
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 0x47d87c
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 0x47d87c
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 0x47d87c
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 0x47d87c
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 0x47d87c
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 0x47d87c
mov ecx, 8
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jmp 0x47d7af
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 0x47c860
call fcn.006ea1c0
mov dword [esp + 0x10], 7
mov eax, 1
jmp 0x47d984
mov dword [esp + 0x10], 6
mov eax, 2
jmp 0x47d984
mov dword [esp + 0x10], 5
mov eax, 4
jmp 0x47d984
mov dword [esp + 0x10], 4
mov eax, 8
jmp 0x47d984
mov dword [esp + 0x10], 3
mov eax, 0x10
jmp 0x47d984
mov dword [esp + 0x10], 2
mov eax, 0x20
jmp 0x47d984