Function at 0x10005cb0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x6c]
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x64]
mov ebp, dword [edi + 0x18]
mov esi, dword [edi + 0x1c]
mov ecx, eax
mov dword [esp + 0x24], edx
mov edx, dword [edi + 0x6c]
and eax, 0xf
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0xf4]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x68]
sar ecx, 4
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x20]
test edx, edx
je 0x10005d06
mov dword [esp + 0x1c], eax
xor edx, edx
xor ebx, ebx
mov dh, byte [ebp]
mov bl, byte [ebp + 2]
mov dl, byte [ebp + 1]
add ebp, 3
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bl, byte [esi + 2]
mov dword [esp + 0x14], edx
xor edx, edx
mov dword [esp + 0x20], ebp
mov dh, byte [esi]
add ecx, 3
mov dl, byte [esi + 1]
add esi, 3
shl edx, 8
or edx, ebx
xor ebx, ebx
mov bh, byte [ecx - 3]
mov ebp, edx
mov bl, byte [ecx - 2]
xor edx, edx
mov dl, byte [ecx - 1]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x64], ecx
xor ecx, ecx
add eax, 3
mov ch, byte [esi]
mov dword [esp + 0x30], eax
mov cl, byte [esi + 1]
add esi, 3
shl ebx, 8
or ebx, edx
xor edx, edx
mov dl, byte [esi - 1]
mov dword [esp + 0x24], esi
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax - 1]
mov dword [esp + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x58], eax
mov ch, byte [eax - 3]
mov dword [esp + 0x48], ebp
mov cl, byte [eax - 2]
mov eax, dword [esp + 0x1c]
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 2]
mov esi, ecx
xor ecx, ecx
mov dword [esp + 0x50], ebx
mov ch, byte [eax]
mov dword [esp + 0x54], esi
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
add eax, 3
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], ecx
mov eax, dword [esp + 0x10]
cmp word [eax], 0x1010
ja 0x10005eb9
mov eax, ebx
mov edx, esi
shr eax, 0x16
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xf
shr edx, 0x11
shr ecx, 0x13
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x10005e6f
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xe
shr edx, 0x10
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0x17
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 0x11
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x10005eb9
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 0xd
shr ecx, 0xf
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0x12
and edx, 0x38
shr ecx, 0x10
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 2], 0x1010
ja 0x10005fa3
mov eax, ebx
mov edx, esi
shr eax, 0x14
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xe
shr edx, 0x10
shr ecx, 0x11
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 2], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x10005f59
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xd
shr edx, 0xf
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0x15
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 0xf
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x10005fa3
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 0xc
shr ecx, 0xe
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0x10
and edx, 0x38
shr ecx, 0xe
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 4], 0x1010
ja 0x1000608d
mov eax, ebx
mov edx, esi
shr eax, 0x12
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xd
shr edx, 0xf
shr ecx, 0xf
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 4], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x10006043
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xc
shr edx, 0xe
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0x13
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 0xd
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x1000608d
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 0xb
shr ecx, 0xd
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0xe
and edx, 0x38
shr ecx, 0xc
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 6], 0x1010
ja 0x10006177
mov eax, ebx
mov edx, esi
shr eax, 0x10
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xc
shr edx, 0xe
shr ecx, 0xd
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 6], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x1000612d
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xb
shr edx, 0xd
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0x11
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 0xb
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x10006177
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 0xa
shr ecx, 0xc
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0xc
and edx, 0x38
shr ecx, 0xa
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 8], 0x1010
ja 0x10006261
mov eax, ebx
mov edx, esi
shr eax, 0xe
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xb
shr edx, 0xd
shr ecx, 0xb
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 8], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x10006217
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xa
shr edx, 0xc
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0xf
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 9
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x10006261
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 9
shr ecx, 0xb
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0xa
and edx, 0x38
shr ecx, 8
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 0xa], 0x1010
ja 0x1000634b
mov eax, ebx
mov edx, esi
shr eax, 0xc
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xa
shr edx, 0xc
shr ecx, 9
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 0xa], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x10006301
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 9
shr edx, 0xb
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0xd
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 7
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x1000634b
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 8
shr ecx, 0xa
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 8
and edx, 0x38
shr ecx, 6
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 0xc], 0x1010
ja 0x10006435
mov eax, ebx
mov edx, esi
shr eax, 0xa
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 9
shr edx, 0xb
shr ecx, 7
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 0xc], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x100063eb
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 8
shr edx, 0xa
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0xb
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 5
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x10006435
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 7
shr ecx, 9
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 6
and edx, 0x38
shr ecx, 4
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov edx, dword [esp + 0x10]
cmp word [edx + 0xe], 0x1010
ja 0x1000651f
mov eax, ebx
mov edx, esi
shr eax, 8
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 8
shr edx, 0xa
shr ecx, 5
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx + 0xe], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x100064d5
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 7
shr edx, 9
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 9
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 3
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x1000651f
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 6
shr ecx, 8
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 4
and edx, 0x38
shr ecx, 2
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
add ecx, 0x10
mov dword [esp + 0x10], ecx
xor ecx, ecx
mov cl, byte [eax]
add eax, 2
shl edx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [eax - 1]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
shl edx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 1]
mov dword [esp + 0x14], edx
xor edx, edx
mov dl, byte [eax]
add eax, 2
shl ebp, 8
or ebp, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2c]
xor edx, edx
shl ebp, 8
mov dl, byte [eax]
or ebp, ecx
shl ebx, 8
xor ecx, ecx
or ebx, edx
mov cl, byte [eax + 1]
mov edx, dword [esp + 0x18]
add eax, 2
shl ebx, 8
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
or ebx, ecx
xor ecx, ecx
mov cl, byte [eax]
shl edx, 8
or edx, ecx
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], edx
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [esp + 0x6c]
shl esi, 8
or esi, edx
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dl, byte [eax]
shl ecx, 8
or ecx, edx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
dec eax
mov dword [esp + 0x6c], ecx
test eax, eax
mov dword [esp + 0x40], eax
jg 0x10005dd1
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10006727
mov eax, dword [esp + 0x10]
cmp word [eax], 0x1010
ja 0x100066e2
mov eax, ebx
mov edx, esi
shr eax, 0x16
and eax, 7
mov ecx, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
shr eax, 0xf
shr edx, 0x11
shr ecx, 0x13
and eax, 0x300
and edx, 0xc0
and ecx, 0x38
or eax, edx
mov edx, dword [esp + 0x28]
or eax, ecx
or eax, edx
mov edx, dword [esp + 0x10]
mov word [edx], ax
and eax, 0xffff
mov edx, eax
mov dword [esp + 0x74], eax
shr edx, 2
cmp byte [edx + 0x10019500], 2
jne 0x1000668d
mov eax, dword [esp + 0x6c]
mov edx, esi
shr eax, 0xe
shr edx, 0x10
and eax, 0x600
and edx, 0x180
or eax, edx
mov edx, ebx
shr edx, 0x17
and edx, 7
or eax, edx
mov edx, dword [esp + 0x14]
shr edx, 0x11
and edx, 0x40
or eax, edx
or eax, ecx
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x38], 1
je 0x10006727
shr eax, 1
cmp byte [eax + 0x1001a500], 2
jne 0x100066e2
mov eax, dword [esp + 0x6c]
mov ecx, esi
shr eax, 0xd
shr ecx, 0xf
and eax, 0x600
and ecx, 0x180
mov edx, ebp
or eax, ecx
mov ecx, dword [esp + 0x14]
shr edx, 0x12
and edx, 0x38
shr ecx, 0x10
or eax, edx
and ecx, 0x40
or eax, ecx
mov ecx, dword [esp + 0x28]
or eax, ecx
or ah, 8
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
add eax, 2
add esi, esi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6c]
add eax, eax
shl edx, 2
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
sub eax, 2
add edx, edx
shl ebp, 2
shl ebx, 2
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x38], eax
jg 0x100065ef
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x10006fa7
mov eax, dword [edi + 0x24]
mov edx, dword [edi + 0xf4]
xor ecx, ecx
mov dword [esp + 0x10], edx
mov ch, byte [eax]
xor edx, edx
mov cl, byte [eax + 1]
mov dl, byte [eax + 2]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x60]
add eax, 3
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov dword [esp + 0x6c], edx
lea edx, [ecx + 1]
sub eax, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x10]
mov cx, word [eax]
cmp cx, 0x1010
ja 0x10006860
mov eax, dword [esp + 0x70]
shr eax, 0x17
mov dl, al
shl ecx, 2
and edx, 3
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006814
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xe
shr edx, 0x10
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0x13
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 0x11
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006860
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 0xd
shr ecx, 0xf
and eax, 0x600
and ecx, 0x180
shr edx, 0x16
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0x12
mov edx, esi
and ecx, 0x38
shr edx, 0x10
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 2]
cmp cx, 0x1010
ja 0x10006928
mov eax, dword [esp + 0x70]
shr eax, 0x15
mov dl, al
and edx, 3
shl ecx, 2
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x100068dc
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xd
shr edx, 0xf
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0x11
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 0xf
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006928
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 0xc
shr ecx, 0xe
and eax, 0x600
and ecx, 0x180
shr edx, 0x14
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0x10
mov edx, esi
and ecx, 0x38
shr edx, 0xe
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 4]
cmp cx, 0x1010
ja 0x100069f0
mov eax, dword [esp + 0x70]
shr eax, 0x13
mov dl, al
shl ecx, 2
and edx, 3
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x100069a4
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xc
shr edx, 0xe
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0xf
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 0xd
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x100069f0
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 0xb
shr ecx, 0xd
and eax, 0x600
and ecx, 0x180
shr edx, 0x12
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0xe
mov edx, esi
and ecx, 0x38
shr edx, 0xc
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 6]
cmp cx, 0x1010
ja 0x10006ab8
mov eax, dword [esp + 0x70]
shr eax, 0x11
mov dl, al
and edx, 3
shl ecx, 2
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006a6c
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xb
shr edx, 0xd
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0xd
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 0xb
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006ab8
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 0xa
shr ecx, 0xc
and eax, 0x600
and ecx, 0x180
shr edx, 0x10
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0xc
mov edx, esi
and ecx, 0x38
shr edx, 0xa
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 8]
cmp cx, 0x1010
ja 0x10006b80
mov eax, dword [esp + 0x70]
shr eax, 0xf
mov dl, al
and edx, 3
shl ecx, 2
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006b34
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xa
shr edx, 0xc
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0xb
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 9
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006b80
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 9
shr ecx, 0xb
and eax, 0x600
and ecx, 0x180
shr edx, 0xe
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0xa
mov edx, esi
and ecx, 0x38
shr edx, 8
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 0xa]
cmp cx, 0x1010
ja 0x10006c48
mov eax, dword [esp + 0x70]
shr eax, 0xd
mov dl, al
shl ecx, 2
and edx, 3
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006bfc
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 9
shr edx, 0xb
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 9
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 7
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006c48
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 8
shr ecx, 0xa
and eax, 0x600
and ecx, 0x180
shr edx, 0xc
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 8
mov edx, esi
and ecx, 0x38
shr edx, 6
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 0xc]
cmp cx, 0x1010
ja 0x10006d10
mov eax, dword [esp + 0x70]
shr eax, 0xb
mov dl, al
shl ecx, 2
and edx, 3
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006cc4
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 8
shr edx, 0xa
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 7
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 5
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006d10
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 7
shr ecx, 9
and eax, 0x600
and ecx, 0x180
shr edx, 0xa
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 6
mov edx, esi
and ecx, 0x38
shr edx, 4
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov cx, word [eax + 0xe]
cmp cx, 0x1010
ja 0x10006dd8
mov eax, dword [esp + 0x70]
shr eax, 9
mov dl, al
and edx, 3
shl ecx, 2
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006d8c
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 7
shr edx, 9
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 5
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 3
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp byte [ecx + 0x1001c500], 2
jne 0x10006dd8
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 6
shr ecx, 8
and eax, 0x600
and ecx, 0x180
shr edx, 8
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 4
mov edx, esi
and ecx, 0x38
shr edx, 2
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
add eax, 0x10
xor edx, edx
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [esp + 0x64]
shl esi, 8
or esi, eax
mov eax, dword [esp + 0x40]
shl esi, 8
mov dl, byte [ecx + eax]
mov ecx, dword [esp + 0x20]
or esi, edx
xor edx, edx
mov dl, byte [eax - 1]
add ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, edx
shl ebx, 8
or ecx, ebx
xor edx, edx
mov dl, byte [eax]
add eax, 2
shl ecx, 8
or ecx, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov ebx, ecx
mov ecx, dword [esp + 0x70]
xor edx, edx
mov dl, byte [eax]
add eax, 2
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax - 1]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov cl, byte [eax]
shl ebp, 8
or ebp, ecx
inc eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov cl, byte [eax]
shl edx, 8
or edx, ecx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
dec eax
mov dword [esp + 0x6c], edx
test eax, eax
mov dword [esp + 0x44], eax
jg 0x10006799
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10006fa7
mov edx, dword [esp + 0x10]
mov cx, word [edx]
cmp cx, 0x1010
ja 0x10006f6c
mov eax, dword [esp + 0x70]
shr eax, 0x17
mov dl, al
shl ecx, 2
and edx, 3
or ecx, edx
and ecx, 0xffff
mov edx, ecx
mov dword [esp + 0x74], ecx
shr edx, 1
cmp byte [edx + 0x1001b500], 2
jne 0x10006f15
mov ecx, dword [esp + 0x6c]
mov edx, ebp
shr ecx, 0xe
shr edx, 0x10
and ecx, 0x600
and edx, 0x180
or ecx, edx
mov edx, ebx
shr edx, 0x13
and edx, 0x38
and eax, 7
or ecx, edx
mov edx, esi
shr edx, 0x11
and edx, 0x40
or ecx, edx
or ecx, eax
or ch, 0x10
push ecx
push edi
call fcn.10007310
mov ecx, dword [esp + 0x74]
cmp dword [esp + 0x34], 1
je 0x10006fa7
cmp byte [ecx + 0x1001c500], 2
jne 0x10006f6c
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x70]
mov ecx, ebp
shr eax, 0xd
shr ecx, 0xf
and eax, 0x600
and ecx, 0x180
shr edx, 0x16
or eax, ecx
and edx, 7
mov ecx, ebx
or eax, edx
shr ecx, 0x12
mov edx, esi
and ecx, 0x38
shr edx, 0x10
or eax, ecx
and edx, 0x40
or eax, edx
or ah, 0x18
push eax
push edi
call fcn.10007310
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x10]
add eax, eax
add edx, 2
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x70]
sub eax, 2
add ebp, ebp
shl esi, 2
shl ebx, 2
shl edx, 2
test eax, eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x34], eax
jg 0x10006e9a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc