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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x9c
mov edx, dword [ecx + 4]
mov esi, dword [ecx + 8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], edx
sub edx, esi
mov dword [esp + 0x18], esi
je 0x47f55f
mov eax, ecx
mov ecx, dword [ecx]
add ecx, esi
movzx ebx, byte [ecx]
test bl, bl
js 0x47edfd
add esi, 1
movzx ecx, bl
mov ebp, esi
mov dword [eax + 8], esi
test ecx, ecx
mov dword [esp + 0x50], ecx
je 0x47f122
mov esi, dword [esp + 0xb0]
cmp ecx, dword [esi + 4]
je 0x47fb32
cmp ecx, 0x5555555
mov eax, 0xffffffff
ja 0x47ea63
lea eax, [ecx + ecx*2]
lea eax, [eax*8 + 8]
mov dword [esp], eax
call fcn.006fec20
mov esi, dword [esp + 0x50]
lea ebx, [eax + 8]
mov dword [eax + 4], esi
sub esi, 1
mov edx, esi
js 0x47ea99
mov eax, ebx
nop
sub edx, 1
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
add eax, 0x18
cmp edx, 0xffffffff
jne 0x47ea80
mov eax, dword [esp + 0xb0]
mov edx, dword [eax]
test edx, edx
je 0x47eb11
mov eax, dword [edx - 4]
mov ebp, dword [esp + 0xb0]
lea eax, [eax + eax*2]
shl eax, 3
lea edi, [edx + eax]
cmp edx, edi
je 0x47eaf8
lea esi, [edi - 0x18]
mov eax, dword [esi + 8]
test eax, eax
je 0x47eaeb
mov esi, esi
lea edi, [edi]
mov dword [esp], eax
call fcn.006febd0
mov edx, dword [ebp]
cmp esi, edx
je 0x47eaef
mov edi, esi
lea esi, [edi - 0x18]
mov eax, dword [esi + 8]
test eax, eax
jne 0x47ead0
cmp esi, edx
jne 0x47eadf
mov eax, dword [edi - 0x1c]
lea eax, [eax + eax*2]
shl eax, 3
add eax, 8
sub edx, 8
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.006febe0
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x50]
mov dword [eax], ebx
mov dword [eax + 4], esi
mov eax, dword [esp + 0x48]
mov esi, dword [eax + 4]
mov ebp, dword [eax + 8]
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], 0
mov dword [esp + 0x4c], 0
mov eax, dword [esp + 0x30]
jmp 0x47ebaf
mov dword [esi + 0x10], 1
mov ebx, 1
test byte [esp + 0x38], 0x20
jne 0x47ed83
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
test eax, eax
je 0x47eb74
mov dword [esp], eax
call fcn.006febd0
mov ebx, dword [edi + 0x10]
mov dword [edi + 8], 0
mov eax, dword [esp + 0x18]
mov dword [eax + 0xc], 0
mov eax, dword [esp + 0x30]
add dword [esp + 0x4c], ebx
add eax, 1
cmp eax, dword [esp + 0x50]
je 0x47f435
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0xb0]
mov dword [esp + 0x30], eax
mov esi, dword [edi + 4]
mov ebp, dword [edi + 8]
mov ebx, dword [edx]
mov dword [esp + 0x28], esi
lea eax, [eax + eax*2]
lea eax, [ebx + eax*8]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x18], eax
cmp ebp, ebx
jae 0x47f55f
mov eax, dword [esp + 0x48]
lea edx, [ebp + 1]
mov dword [esp + 0x40], edx
mov edi, dword [eax]
mov dword [eax + 8], edx
movzx eax, byte [edi + ebp]
mov dword [esp + 0x20], edi
test al, 0xc0
mov byte [esp + 0x38], al
jne 0x47f122
mov ecx, eax
and ecx, 0xf
cmp cl, 8
movzx esi, cl
ja 0x47f122
sub ebx, edx
cmp esi, ebx
ja 0x47f122
test esi, esi
je 0x47efb0
movzx ecx, byte [edi + ebp + 1]
xor edx, edx
cmp esi, 1
mov eax, ecx
je 0x47ecea
movzx ebx, byte [edi + ebp + 2]
mov edi, ebx
mov ebx, edx
shld ebx, ecx, 8
shl ecx, 8
or edi, ecx
cmp esi, 2
mov edx, ebx
mov eax, edi
je 0x47ecea
shld ebx, edi, 8
mov ecx, edi
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx edi, byte [edi + ebp + 3]
or edi, ecx
cmp esi, 3
mov eax, edi
je 0x47ecea
shld ebx, edi, 8
mov ecx, edi
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx edi, byte [edi + ebp + 4]
or edi, ecx
cmp esi, 4
mov eax, edi
je 0x47ecea
shld ebx, edi, 8
mov ecx, edi
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx edi, byte [edi + ebp + 5]
or edi, ecx
cmp esi, 5
mov eax, edi
je 0x47ecea
shld ebx, edi, 8
mov ecx, edi
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx edi, byte [edi + ebp + 6]
or edi, ecx
cmp esi, 6
mov eax, edi
je 0x47ecea
shld ebx, edi, 8
mov ecx, edi
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx edi, byte [edi + ebp + 7]
or edi, ecx
cmp esi, 7
mov eax, edi
je 0x47ecea
mov ecx, edi
shld ebx, edi, 8
mov edi, dword [esp + 0x20]
shl ecx, 8
mov edx, ebx
movzx ebp, byte [edi + ebp + 8]
or ebp, ecx
mov eax, ebp
mov ecx, dword [esp + 0x40]
add ecx, esi
mov esi, dword [esp + 0x48]
test byte [esp + 0x38], 0x10
mov dword [esi + 8], ecx
mov esi, dword [esp + 0x18]
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x47eb40
mov ebp, dword [esp + 0x28]
sub ebp, ecx
je 0x47f55f
mov eax, dword [esp + 0x20]
lea esi, [eax + ecx]
movzx ebx, byte [esi]
test bl, bl
js 0x47f130
mov eax, dword [esp + 0x48]
lea esi, [ecx + 1]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], 0
mov dword [eax + 8], esi
mov eax, dword [esp + 0x68]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov ebx, eax
sub ebp, esi
mov dword [edi + 0x10], eax
je 0x47f55f
mov eax, dword [esp + 0x20]
lea ecx, [eax + esi]
movzx eax, byte [ecx]
test al, al
mov byte [esp + 0x78], al
js 0x47efc0
test byte [esp + 0x38], 0x20
mov eax, dword [esp + 0x48]
lea ecx, [esi + 1]
mov dword [eax + 8], ecx
je 0x47eb57
mov ebp, dword [esp + 0x28]
sub ebp, ecx
je 0x47f55f
mov edi, dword [esp + 0x20]
add edi, ecx
movzx esi, byte [edi]
mov eax, esi
test al, al
js 0x47f290
movzx esi, al
mov eax, dword [esp + 0x48]
lea edx, [ecx + 1]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 0
mov dword [eax + 8], edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x70]
cmp dword [edi + 0xc], esi
mov eax, dword [edi + 8]
je 0x47ef70
test eax, eax
je 0x47ede2
mov dword [esp], eax
call fcn.006febd0
mov dword [edi + 8], 0
mov eax, dword [esp + 0x18]
test esi, esi
mov dword [eax + 0xc], 0
jne 0x47f410
mov ebx, dword [eax + 0x10]
jmp 0x47eb7f
cmp edx, 1
mov ebp, edx
je 0x47f55f
movzx eax, bl
xor edi, edi
test bl, 0x40
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + 1]
mov dword [esp + 0x30], eax
mov esi, eax
lea eax, [edx - 2]
je 0x480101
test eax, eax
je 0x47f55f
movzx eax, byte [ecx + 2]
xor edx, edx
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov edi, edx
or eax, dword [esp + 0x38]
test bl, 0x20
mov dword [esp + 0x3c], edx
mov esi, eax
lea eax, [ebp - 3]
je 0x480188
test eax, eax
je 0x47f55f
movzx eax, byte [ecx + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x34], edx
mov edx, eax
mov dword [esp + 0x30], eax
or edx, esi
mov eax, edx
mov edx, dword [esp + 0x34]
mov esi, eax
lea eax, [ebp - 4]
or edx, edi
test bl, 0x10
mov edi, edx
je 0x48017c
test eax, eax
je 0x47f55f
movzx eax, byte [ecx + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x34], edx
mov edx, eax
mov dword [esp + 0x30], eax
or edx, esi
mov eax, edx
mov edx, dword [esp + 0x34]
mov esi, eax
lea eax, [ebp - 5]
or edx, edi
test bl, 8
mov edi, edx
je 0x480170
test eax, eax
je 0x47f55f
movzx edx, byte [ecx + 5]
lea eax, [ebp - 6]
or edx, edi
test bl, 4
mov edi, edx
je 0x480164
test eax, eax
je 0x47f55f
movzx eax, byte [ecx + 6]
shl eax, 8
or eax, edi
test bl, 2
mov edi, eax
lea eax, [ebp - 7]
je 0x480158
test eax, eax
je 0x47f55f
movzx eax, byte [ecx + 7]
shl eax, 0x10
or eax, edi
and ebx, 1
mov edi, eax
je 0x48014c
cmp ebp, 8
je 0x47f55f
movzx eax, byte [ecx + 8]
mov ecx, esi
shl eax, 0x18
or eax, edi
mov ebx, eax
mov eax, 9
mov ebp, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x48]
cmp ebx, 0
mov dword [eax + 8], ebp
ja 0x47f122
cmp ecx, 0x7fffffff
ja 0x47f122
jmp 0x47ea30
test esi, esi
je 0x47eb7f
mov ecx, dword [esp + 0x28]
sub ecx, edx
cmp esi, ecx
ja 0x47f55f
mov ebx, dword [esp + 0x48]
add edx, dword [ebx]
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], edx
call sub.msvcrt.dll_memcpy
add dword [ebx + 8], esi
mov eax, dword [esp + 0x18]
jmp 0x47edf5
xor eax, eax
xor edx, edx
jmp 0x47ecea
cmp ebp, 1
je 0x47f55f
mov edx, eax
movzx eax, byte [ecx + 1]
test dl, 0x40
je 0x47fca6
cmp ebp, 2
je 0x47f55f
movzx eax, word [ecx + 1]
and edx, 0x20
mov dword [esp + 0x44], 0
mov edi, eax
mov dword [esp + 0x40], eax
je 0x47fc7a
cmp ebp, 3
je 0x47f55f
movzx eax, byte [ecx + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x8c], edx
mov dword [esp + 0x44], edx
or eax, edi
test byte [esp + 0x78], 0x10
mov dword [esp + 0x40], eax
je 0x48002c
cmp ebp, 4
je 0x47f55f
movzx eax, byte [ecx + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x88], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x8c]
or edx, dword [esp + 0x44]
test byte [esp + 0x78], 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
je 0x480013
cmp ebp, 5
je 0x47f55f
movzx eax, byte [ecx + 5]
or eax, dword [esp + 0x44]
test byte [esp + 0x78], 4
mov dword [esp + 0x44], eax
je 0x47fff4
cmp ebp, 6
je 0x47f55f
movzx eax, byte [ecx + 6]
shl eax, 8
or eax, dword [esp + 0x44]
test byte [esp + 0x78], 2
mov dword [esp + 0x44], eax
je 0x47ffd5
cmp ebp, 7
je 0x47f55f
movzx eax, byte [ecx + 7]
shl eax, 0x10
or eax, dword [esp + 0x44]
test byte [esp + 0x78], 1
mov dword [esp + 0x44], eax
je 0x47ffad
cmp ebp, 8
je 0x47f55f
movzx eax, byte [ecx + 8]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebp, edx
shl eax, 0x18
mov edx, ecx
or edx, eax
mov eax, 9
lea ecx, [eax + esi]
mov eax, dword [esp + 0x48]
cmp edx, 0
mov dword [eax + 8], ecx
jbe 0x47fb21
call fcn.0047cca0
mov esi, esi
lea edi, [edi]
cmp ebp, 1
je 0x47f55f
test bl, 0x40
movzx eax, byte [esi + 1]
je 0x47fd5d
cmp ebp, 2
je 0x47f55f
movzx eax, word [esi + 1]
test bl, 0x20
mov dword [esp + 0x44], 0
mov edi, eax
mov dword [esp + 0x40], eax
je 0x47fd9d
cmp ebp, 3
je 0x47f55f
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]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], edx
or eax, edi
test bl, 0x10
mov dword [esp + 0x40], eax
je 0x47fdb6
cmp ebp, 4
je 0x47f55f
movzx eax, byte [esi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x78], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x7c]
or edx, dword [esp + 0x44]
test bl, 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
je 0x47ff77
cmp ebp, 5
je 0x47f55f
movzx eax, byte [esi + 5]
or eax, dword [esp + 0x44]
test bl, 4
mov dword [esp + 0x44], eax
je 0x47ff5a
cmp ebp, 6
je 0x47f55f
movzx eax, byte [esi + 6]
shl eax, 8
or eax, dword [esp + 0x44]
test bl, 2
mov dword [esp + 0x44], eax
je 0x47ff3d
cmp ebp, 7
je 0x47f55f
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x44]
and ebx, 1
mov dword [esp + 0x44], eax
je 0x47ff2f
cmp ebp, 8
je 0x47f55f
movzx eax, byte [esi + 8]
mov edi, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
shl eax, 0x18
mov dword [esp + 0x68], esi
mov esi, 9
or eax, edi
mov dword [esp + 0x6c], eax
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
add esi, ecx
cmp edx, 0
mov dword [eax + 8], esi
mov eax, dword [esp + 0x68]
ja 0x47f122
cmp eax, 0x7fffffff
ja 0x47f122
jmp 0x47ed43
cmp ebp, 1
je 0x47f55f
test esi, 0x40
movzx eax, byte [edi + 1]
je 0x47fc51
cmp ebp, 2
je 0x47f55f
movzx eax, word [edi + 1]
test esi, 0x20
mov dword [esp + 0x24], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x20], eax
je 0x47fc0d
cmp ebp, 3
je 0x47f55f
movzx eax, byte [edi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x38]
test esi, 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
je 0x47feb3
cmp ebp, 4
je 0x47f55f
movzx eax, byte [edi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x38], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x3c]
or edx, dword [esp + 0x24]
test esi, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
je 0x47fe98
cmp ebp, 5
je 0x47f55f
movzx eax, byte [edi + 5]
or eax, dword [esp + 0x24]
test esi, 4
mov dword [esp + 0x24], eax
je 0x47fe77
cmp ebp, 6
je 0x47f55f
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x24]
test esi, 2
mov dword [esp + 0x24], eax
je 0x47fe56
cmp ebp, 7
je 0x47f55f
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x24]
and esi, 1
mov dword [esp + 0x24], eax
je 0x47ffbb
cmp ebp, 8
je 0x47f55f
movzx eax, byte [edi + 8]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
shl eax, 0x18
mov dword [esp + 0x70], esi
mov esi, 9
or eax, edi
mov dword [esp + 0x74], eax
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x48]
lea edx, [ecx + esi]
mov esi, dword [esp + 0x70]
cmp edi, 0
mov dword [eax + 8], edx
ja 0x47f122
cmp esi, 0x7fffffff
ja 0x47f122
jmp 0x47edbb
mov dword [esp], esi
call fcn.006fec20
mov edx, dword [esp + 0x18]
mov dword [edx + 8], eax
mov dword [edx + 0xc], esi
mov edx, dword [esp + 0x48]
mov ebx, dword [edx + 4]
mov edx, dword [edx + 8]
mov dword [esp + 0x28], ebx
jmp 0x47ef78
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0x30]
cmp dword [esi + 0xc], eax
je 0x47f48c
test eax, eax
je 0x47fb50
cmp eax, 0xfffffff
ja 0x480147
shl eax, 3
mov dword [esp], eax
call fcn.006fec20
mov ebx, eax
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 8]
test eax, eax
je 0x47f47b
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x30]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x47f82e
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 4]
mov ebp, dword [edx + 8]
mov dword [esp + 0x20], eax
sub eax, ebp
mov esi, eax
je 0x47f55f
mov eax, dword [esp + 0xb0]
mov ebx, esi
mov dword [esp + 0x18], 0
mov ecx, dword [eax + 8]
mov eax, dword [edx]
mov dword [esp + 0x38], eax
lea edi, [eax + ebp]
mov eax, dword [esp + 0x50]
mov esi, ecx
sub eax, 1
mov dword [esp + 0x40], eax
lea esi, [esi]
movzx ecx, byte [edi]
test cl, cl
js 0x47f564
mov eax, dword [esp + 0x48]
add ebp, 1
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], 0
mov dword [eax + 8], ebp
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x58]
sub edi, ebp
mov dword [esi], eax
je 0x47f55f
mov eax, dword [esp + 0x38]
lea edx, [eax + ebp]
movzx eax, byte [edx]
test al, al
js 0x47f6c0
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x48]
add ebp, 1
mov dword [esp + 0x64], 0
mov dword [eax + 8], ebp
mov eax, dword [esp + 0x60]
add dword [esp + 0x18], 1
mov dword [esi + 4], eax
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x40]
je 0x47f820
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add esi, 8
sub ebx, ebp
lea edi, [eax + ebp]
jne 0x47f4e0
call fcn.0047cc70
cmp ebx, 1
je 0x47f55f
test cl, 0x40
movzx eax, byte [edi + 1]
je 0x47fba8
cmp ebx, 2
je 0x47f55f
movzx eax, word [edi + 1]
test cl, 0x20
mov dword [esp + 0x2c], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], eax
je 0x47fbf0
cmp ebx, 3
je 0x47f55f
movzx eax, byte [edi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
or eax, dword [esp + 0x50]
test cl, 0x10
mov dword [esp + 0x6c], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], eax
je 0x47fce8
cmp ebx, 4
je 0x47f55f
movzx eax, byte [edi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x50], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x54]
or edx, dword [esp + 0x2c]
test cl, 8
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
je 0x47fccd
cmp ebx, 5
je 0x47f55f
movzx eax, byte [edi + 5]
or eax, dword [esp + 0x2c]
test cl, 4
mov dword [esp + 0x2c], eax
je 0x47ff0e
cmp ebx, 6
je 0x47f55f
movzx eax, byte [edi + 6]
shl eax, 8
or eax, dword [esp + 0x2c]
test cl, 2
mov dword [esp + 0x2c], eax
je 0x47feed
cmp ebx, 7
je 0x47f55f
movzx eax, byte [edi + 7]
shl eax, 0x10
or eax, dword [esp + 0x2c]
and ecx, 1
mov dword [esp + 0x2c], eax
je 0x47fed3
cmp ebx, 8
je 0x47f55f
movzx eax, byte [edi + 8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
shl eax, 0x18
mov dword [esp + 0x58], edx
or eax, ecx
mov ecx, 9
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x48]
add ebp, ecx
cmp edx, 0
mov dword [eax + 8], ebp
mov eax, dword [esp + 0x58]
ja 0x47f122
cmp eax, 0x7fffffff
ja 0x47f122
jmp 0x47f4fd
cmp edi, 1
je 0x47f55f
test al, 0x40
movzx ecx, byte [edx + 1]
je 0x47fb62
cmp edi, 2
je 0x47f55f
movzx ebx, word [edx + 1]
test al, 0x20
mov dword [esp + 0x2c], 0
mov dword [esp + 0x50], ebx
mov dword [esp + 0x28], ebx
je 0x47fd3f
cmp edi, 3
je 0x47f55f
movzx ecx, byte [edx + 3]
xor ebx, ebx
shld ebx, ecx, 0x10
shl ecx, 0x10
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x68]
or ecx, dword [esp + 0x50]
test al, 0x10
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ecx
je 0x47fd21
cmp edi, 4
je 0x47f55f
movzx ecx, byte [edx + 4]
xor ebx, ebx
shld ebx, ecx, 0x18
shl ecx, 0x18
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x50], ecx
or ebx, ecx
mov ecx, ebx
mov ebx, dword [esp + 0x54]
or ebx, dword [esp + 0x2c]
test al, 8
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], ebx
je 0x47fd08
cmp edi, 5
je 0x47f55f
movzx ecx, byte [edx + 5]
or ecx, dword [esp + 0x2c]
test al, 4
mov dword [esp + 0x2c], ecx
je 0x47ff8e
cmp edi, 6
je 0x47f55f
movzx ecx, byte [edx + 6]
shl ecx, 8
or ecx, dword [esp + 0x2c]
test al, 2
mov dword [esp + 0x2c], ecx
je 0x47fe37
cmp edi, 7
je 0x47f55f
movzx ecx, byte [edx + 7]
shl ecx, 0x10
or ecx, dword [esp + 0x2c]
test al, 1
mov dword [esp + 0x2c], ecx
je 0x47fe1d
cmp edi, 8
je 0x47f55f
movzx eax, byte [edx + 8]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
shl eax, 0x18
mov dword [esp + 0x60], edx
or eax, ecx
mov ecx, 9
mov dword [esp + 0x64], eax
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x48]
add ebp, ecx
cmp edx, 0
mov dword [eax + 8], ebp
mov eax, dword [esp + 0x60]
ja 0x47f122
cmp eax, 0x7fffffff
ja 0x47f122
jmp 0x47f533
mov esi, dword [esp + 0x30]
cmp dword [esp + 0x4c], esi
jb 0x47f122
mov esi, dword [esp + 0xb0]
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x30]
cmp eax, dword [esi + 0x14]
mov dword [esp + 0x28], eax
je 0x47f88d
test eax, eax
je 0x47fb59
cmp eax, 0x1fffffff
ja 0x480147
shl eax, 2
mov dword [esp], eax
call fcn.006fec20
mov ebx, eax
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x10]
test eax, eax
je 0x47f87c
mov dword [esp], eax
call fcn.006febd0
mov eax, dword [esp + 0xb0]
mov esi, dword [esp + 0x28]
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], esi
cmp dword [esp + 0x28], 1
je 0x47fac9
mov edi, dword [esp + 0x28]
test edi, edi
je 0x47fb14
mov eax, dword [esp + 0x48]
mov esi, dword [eax + 4]
mov ebx, dword [eax + 8]
mov dword [esp + 0x18], esi
sub esi, ebx
mov dword [esp + 0x20], esi
je 0x47f55f
mov esi, dword [esp + 0xb0]
xor ebp, ebp
mov esi, dword [esi + 0x10]
mov dword [esp + 0x48], esi
mov esi, dword [eax]
lea ecx, [esi + ebx]
mov dword [esp + 0x30], esi
mov esi, ecx
mov ecx, eax
movzx edi, byte [esi]
mov eax, edi
test al, al
js 0x47f93c
movzx edi, al
add ebx, 1
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], edi
mov dword [ecx + 8], ebx
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x80]
mov dword [eax + ebp*4], esi
add ebp, 1
cmp dword [esp + 0x28], ebp
je 0x47fb14
mov ebx, dword [ecx + 8]
mov eax, dword [esp + 0x30]
lea esi, [eax + ebx]
mov eax, dword [ecx + 4]
sub eax, ebx
mov dword [esp + 0x20], eax
je 0x47f55f
movzx edi, byte [esi]
mov eax, edi
test al, al
jns 0x47f8e4
mov edx, dword [esp + 0x20]
cmp edx, 1
je 0x47f55f
test edi, 0x40
movzx eax, byte [esi + 1]
je 0x47fdcf
cmp edx, 2
je 0x47f55f
movzx eax, word [esi + 1]
test edi, 0x20
mov dword [esp + 0x1c], 0
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], eax
je 0x48004a
cmp dword [esp + 0x20], 3
je 0x47f55f
movzx eax, byte [esi + 3]
xor edx, edx
shld edx, eax, 0x10
shl eax, 0x10
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
or eax, dword [esp + 0x38]
test edi, 0x10
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
je 0x4800e1
cmp dword [esp + 0x20], 4
je 0x47f55f
movzx eax, byte [esi + 4]
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
or edx, eax
mov eax, edx
mov edx, dword [esp + 0x3c]
or edx, dword [esp + 0x1c]
test edi, 8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
je 0x4800c6
cmp dword [esp + 0x20], 5
je 0x47f55f
movzx eax, byte [esi + 5]
or eax, dword [esp + 0x1c]
test edi, 4
mov dword [esp + 0x1c], eax
je 0x4800a5
cmp dword [esp + 0x20], 6
je 0x47f55f
movzx eax, byte [esi + 6]
shl eax, 8
or eax, dword [esp + 0x1c]
test edi, 2
mov dword [esp + 0x1c], eax
je 0x480084
cmp dword [esp + 0x20], 7
je 0x47f55f
movzx eax, byte [esi + 7]
shl eax, 0x10
or eax, dword [esp + 0x1c]
and edi, 1
mov dword [esp + 0x1c], eax
je 0x48006a
cmp dword [esp + 0x20], 8
je 0x47f55f
movzx eax, byte [esi + 8]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
shl eax, 0x18
mov dword [esp + 0x80], esi
mov esi, 9
or eax, edi
mov dword [esp + 0x84], eax
mov edx, dword [esp + 0x84]
add ebx, esi
mov eax, dword [esp + 0x80]
mov dword [ecx + 8], ebx
cmp edx, 0
ja 0x47f122
cmp eax, 0x7fffffff
ja 0x47f122
jmp 0x47f8ff
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x47f122
mov eax, dword [esp + 0xb0]
xor edx, edx
mov ebx, dword [eax + 0xc]
mov edi, eax
test ebx, ebx
je 0x47fafe
mov ecx, dword [edi + 8]
cmp dword [ecx], edx
je 0x47fb44
xor eax, eax
jmp 0x47faf7
cmp dword [ecx + eax*8], edx
je 0x47fb40
add eax, 1
cmp eax, ebx
jne 0x47faf2
mov eax, dword [esp + 0xb0]
cmp dword [esp + 0x4c], edx
mov eax, dword [eax + 0x10]
mov dword [eax], edx
je 0x47f122
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret 4
cmp ebp, 0x7fffffff
ja 0x47f122
jmp 0x47eb4c
mov ebx, dword [esi]
jmp 0x47eb28
test eax, eax
js 0x47fafe
add edx, 1
cmp esi, edx
jne 0x47fae3
jmp 0x47f122
xor ebx, ebx
mov eax, esi
jmp 0x47f46c
xor ebx, ebx
mov eax, esi
jmp 0x47f86d
and eax, 0x3f
xor edx, edx
mov dword [esp + 0x28], ecx
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x2c], 0
mov ecx, 2
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x50]
mov edx, dword [esp + 0x2c]
invalid