Function at 0x1002dbc0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x38
push ebx
mov ebx, dword [esp + 0x40]
push ebp
push esi
mov esi, ecx
cmp byte [ebx + 0x2c], 0
lea ebp, [ebx + 4]
push edi
mov dword [esp + 0x28], esi
lea edi, [ebx + 0x18]
mov dword [esp + 0x10], ebp
jne 0x1002dbf6
lea eax, [ebx + 0x30]
mov byte [ebx + 0x2c], 1
push eax
push edi
push ebp
call fcn.10028b50
test al, al
je 0x1002dc06
jmp 0x1002dbfa
mov dword [esp + 0x10], ebp
mov eax, dword [ebx + 0x24]
mov ecx, dword [edi]
add eax, ecx
cmp dword [ebp], eax
jle 0x1002dc19
mov byte [ebx + 0x2cd0], 1
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x38
ret 4
mov eax, dword [ebx + 0x20]
dec eax
add eax, ecx
mov ecx, dword [ebx + 0x2ccc]
sub ecx, 0x10
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
cmp eax, ecx
jge 0x1002dc3a
mov dword [esp + 0x2c], eax
jmp 0x1002dc50
mov dword [esp + 0x2c], ecx
jmp 0x1002dc50
mov ebp, dword [esp + 0x10]
mov ebx, dword [esp + 0x4c]
jmp 0x1002dc50
mov ecx, dword [esi + 0x64]
mov edi, dword [esi + 0xb0b8]
cmp ecx, edi
jb 0x1002dc5f
sub ecx, edi
cmp dword [esi + 0x68], ecx
mov dword [esi + 0x64], ecx
seta al
mov dword [esi + 0x68], ecx
or byte [esi + 0x6c], al
mov edx, dword [ebp]
cmp edx, dword [esp + 0x2c]
jl 0x1002dcae
cmp edx, dword [esp + 0x34]
jg 0x1002e79d
jne 0x1002dc8f
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0x1c]
jge 0x1002e79d
cmp edx, dword [esp + 0x38]
jl 0x1002dca2
cmp byte [ebx + 0x2cd2], 0
je 0x1002e796
cmp edx, dword [ebx + 0x2ccc]
jge 0x1002e796
mov edx, dword [esi + 0x2d2c]
mov eax, edx
sub eax, ecx
cmp eax, edi
jb 0x1002dcbe
add eax, edi
cmp eax, 0x1004
ja 0x1002dcf6
cmp edx, ecx
je 0x1002dcf6
mov ecx, esi
call fcn.1002a340
mov eax, dword [esi + 0x2e4c]
cmp eax, dword [esi + 0x2e40]
jg 0x1002dc0d
jl 0x1002dcf6
mov eax, dword [esi + 0x2e48]
cmp eax, dword [esi + 0x2e3c]
ja 0x1002dc0d
mov eax, dword [ebp + 0xc]
mov ecx, 0x10
mov ebx, dword [ebp]
mov edi, dword [ebp + 4]
sub ecx, edi
mov dword [esp + 0x18], eax
mov edx, dword [ebx + eax]
bswap edx
shr edx, cl
mov ecx, dword [esp + 0x4c]
and edx, 0xfffe
mov eax, dword [ecx + 0xb4]
cmp edx, dword [ecx + eax*4 + 0x34]
jae 0x1002dd59
mov ecx, 0x10
sub ecx, eax
shr edx, cl
mov ecx, dword [esp + 0x4c]
movzx edi, byte [edx + ecx + 0xb8]
add edi, dword [ebp + 4]
mov eax, edi
shr eax, 3
add ebx, eax
and edi, 7
mov dword [ebp], ebx
mov dword [ebp + 4], edi
movzx eax, word [ecx + edx*2 + 0x2b8]
jmp 0x1002ddc2
mov ebp, 0xf
inc eax
cmp eax, ebp
jae 0x1002dd81
lea ecx, [ecx + eax*4]
add ecx, 0x34
lea esp, [esp]
cmp edx, dword [ecx]
jb 0x1002dd7f
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x1002dd70
jmp 0x1002dd81
mov ebp, eax
add edi, ebp
mov ecx, 0x10
mov eax, edi
sub ecx, ebp
shr eax, 3
and edi, 7
add ebx, eax
mov eax, dword [esp + 0x10]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov eax, dword [esp + 0x4c]
sub edx, dword [eax + ebp*4 + 0x30]
shr edx, cl
mov ecx, dword [eax + ebp*4 + 0x74]
mov ebp, dword [esp + 0x10]
add ecx, edx
mov edx, eax
cmp ecx, dword [edx + 0x30]
sbb eax, eax
and eax, ecx
movzx eax, word [edx + eax*2 + 0x6b8]
movzx edx, ax
mov dword [esp + 0x24], ebx
cmp edx, 0x100
jae 0x1002dde5
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x2d30]
mov byte [ecx + eax], dl
inc dword [esi + 0x64]
jmp 0x1002dc44
cmp edx, 0x106
jb 0x1002e37c
lea ebp, [edx - 0x106]
cmp ebp, 8
jae 0x1002de01
add ebp, 2
jmp 0x1002de4d
mov edx, ebp
and ebp, 3
shr edx, 2
or ebp, 4
dec edx
mov ecx, edx
shl ebp, cl
add ebp, 2
test edx, edx
je 0x1002de51
mov eax, dword [esp + 0x18]
mov ecx, 0x10
sub ecx, edi
add edi, edx
mov eax, dword [ebx + eax]
bswap eax
shr eax, cl
mov ecx, 0x10
movzx eax, ax
sub ecx, edx
shr eax, cl
add ebp, eax
mov eax, edi
shr eax, 3
add ebx, eax
mov eax, dword [esp + 0x10]
and edi, 7
mov dword [eax], ebx
mov dword [eax + 4], edi
mov dword [esp + 0x24], ebx
mov eax, dword [esp + 0x18]
mov ecx, 0x10
sub ecx, edi
mov edx, dword [ebx + eax]
bswap edx
shr edx, cl
mov ecx, dword [esp + 0x4c]
and edx, 0xfffe
mov eax, dword [ecx + 0x9a0]
cmp edx, dword [ecx + eax*4 + 0x920]
jae 0x1002dec5
mov ecx, 0x10
sub ecx, eax
mov eax, dword [esp + 0x4c]
shr edx, cl
movzx ebx, byte [edx + eax + 0x9a4]
mov eax, dword [esp + 0x10]
add ebx, edi
mov edi, ebx
shr edi, 3
add edi, dword [esp + 0x24]
and ebx, 7
mov dword [eax], edi
mov dword [eax + 4], ebx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], edi
movzx eax, word [eax + edx*2 + 0xba4]
jmp 0x1002df4d
mov ecx, 0xf
inc eax
mov dword [esp + 0x24], ecx
cmp eax, ecx
jae 0x1002def9
mov ecx, dword [esp + 0x4c]
lea ecx, [ecx + eax*4]
add ecx, 0x920
cmp edx, dword [ecx]
jb 0x1002def3
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x1002dee0
mov ecx, dword [esp + 0x24]
jmp 0x1002def9
mov ecx, eax
mov dword [esp + 0x24], eax
add ecx, edi
mov edi, dword [esp + 0x4c]
mov eax, ecx
and ecx, 7
shr eax, 3
add ebx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov dword [eax + 4], ecx
mov ecx, 0x10
mov dword [eax], ebx
mov eax, dword [esp + 0x24]
sub ecx, eax
mov dword [esp + 0x24], ebx
sub edx, dword [edi + eax*4 + 0x91c]
shr edx, cl
mov ecx, dword [edi + eax*4 + 0x960]
add ecx, edx
cmp ecx, dword [edi + 0x91c]
sbb eax, eax
and eax, ecx
movzx eax, word [edi + eax*2 + 0xfa4]
movzx eax, ax
cmp eax, 4
jae 0x1002df5d
lea ebx, [eax + 1]
jmp 0x1002e19c
mov edi, eax
and eax, 1
shr edi, 1
or eax, 2
dec edi
mov ecx, edi
shl eax, cl
inc eax
mov dword [esp + 0x30], eax
mov ebx, eax
mov dword [esp + 0x20], ebx
test edi, edi
je 0x1002e1a0
cmp edi, 4
jb 0x1002e14e
jbe 0x1002e02e
mov edx, dword [esp + 0x14]
mov al, 8
mov ecx, dword [esp + 0x18]
sub al, dl
movzx eax, al
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
cmp edi, 0x24
jbe 0x1002dfe0
mov edx, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
mov ecx, dword [esp + 0x14]
bswap edx
bswap eax
call fcn.10030990
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x1c]
movzx edx, byte [eax + ecx + 8]
mov cl, byte [esp + 0x24]
shr edx, cl
mov ecx, 0x44
or ebx, edx
mov edx, dword [esp + 0x14]
jmp 0x1002dfff
mov ebx, dword [eax + ecx]
mov ecx, edx
bswap ebx
shl ebx, cl
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 4]
mov cl, byte [esp + 0x24]
shr eax, cl
mov ecx, 0x24
or ebx, eax
add edx, 0xfffffffc
sub ecx, edi
add edx, edi
shr ebx, cl
mov ecx, dword [esp + 0x10]
mov eax, edx
shr eax, 3
and edx, 7
add eax, dword [esp + 0x1c]
shl ebx, 4
add ebx, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov dword [ecx], eax
mov dword [esp + 0x14], edx
mov dword [ecx + 4], edx
jmp 0x1002e032
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x4c]
mov edx, dword [ecx + eax]
mov ecx, 0x10
mov eax, dword [esp + 0x14]
sub ecx, eax
bswap edx
shr edx, cl
mov ecx, dword [esp + 0x4c]
and edx, 0xfffe
mov ecx, dword [ecx + 0x128c]
cmp edx, dword [esi + ecx*4 + 0x120c]
jae 0x1002e0a7
mov ecx, 0x10
sub ecx, dword [esi + 0x128c]
shr edx, cl
movzx ecx, byte [edx + esi + 0x1290]
mov esi, dword [esp + 0x10]
add ecx, eax
mov eax, ecx
shr eax, 3
add eax, dword [esp + 0x24]
and ecx, 7
mov dword [esi], eax
mov eax, esi
mov dword [eax + 4], ecx
mov eax, dword [esp + 0x4c]
movzx eax, word [eax + edx*2 + 0x1490]
jmp 0x1002e130
lea eax, [ecx + 1]
mov dword [esp + 0x20], 0xf
cmp eax, 0xf
jae 0x1002e0db
mov ecx, esi
lea ecx, [ecx + eax*4]
add ecx, 0x120c
cmp edx, dword [ecx]
jb 0x1002e0d5
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x1002e0c2
mov eax, dword [esp + 0x20]
jmp 0x1002e0e0
mov dword [esp + 0x20], eax
jmp 0x1002e0e0
mov eax, 0xf
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
add ecx, eax
mov eax, ecx
and ecx, 7
shr eax, 3
add eax, dword [esp + 0x24]
mov dword [esi], eax
mov eax, esi
mov esi, dword [esp + 0x4c]
mov dword [eax + 4], ecx
mov ecx, 0x10
mov eax, dword [esp + 0x20]
sub ecx, eax
sub edx, dword [esi + eax*4 + 0x1208]
shr edx, cl
mov ecx, dword [esi + eax*4 + 0x124c]
add ecx, edx
cmp ecx, dword [esi + 0x1208]
sbb eax, eax
and eax, ecx
movzx eax, word [esi + eax*2 + 0x1890]
mov esi, dword [esp + 0x28]
movzx eax, ax
add ebx, eax
mov dword [esp + 0x20], ebx
cmp edi, 0x1e
jb 0x1002e1a0
or ebx, 0xffffffff
add ebp, 2
mov dword [esp + 0x20], ebx
jmp 0x1002e1c2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [eax + ecx]
mov ecx, edx
bswap ebx
shl ebx, cl
mov ecx, dword [esp + 0x18]
movzx eax, byte [eax + ecx + 4]
mov ecx, 8
sub cl, dl
shr eax, cl
mov ecx, 0x20
or ebx, eax
sub ecx, edi
shr ebx, cl
lea ecx, [edi + edx]
mov edx, dword [esp + 0x10]
mov eax, ecx
add ebx, dword [esp + 0x30]
shr eax, 3
add eax, dword [esp + 0x1c]
and ecx, 7
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [esp + 0x20], ebx
mov eax, ebx
cmp ebx, 0x100
jbe 0x1002e1c3
inc ebp
mov dword [esp + 0x20], ebx
cmp eax, 0x2000
jbe 0x1002e1c3
inc ebp
mov dword [esp + 0x20], ebx
cmp eax, 0x40000
jbe 0x1002e1c3
inc ebp
mov eax, dword [esi + 0x50]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], ebx
mov edx, dword [esi + 0x64]
mov edi, edx
sub edi, ebx
mov dword [esi + 0x5c], ebp
cmp ebx, edx
jbe 0x1002e22f
mov eax, dword [esi + 0xb0b8]
add edi, eax
cmp ebx, eax
ja 0x1002e1f8
cmp byte [esi + 0x6c], 0
jne 0x1002e22f
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x1002e78d
mov eax, dword [esi + 0x2d30]
dec ebp
mov byte [edx + eax], 0
mov edx, dword [esi + 0x64]
mov eax, dword [esi + 0xb0b8]
inc edx
cmp edx, eax
jb 0x1002e21f
sub edx, eax
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e204
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
mov ecx, dword [esi + 0xb0b8]
lea eax, [ecx - 0x1004]
cmp edi, eax
jae 0x1002e33a
cmp edx, eax
jae 0x1002e33a
mov eax, dword [esi + 0x2d30]
add edi, eax
lea ebx, [eax + edx]
lea eax, [edx + ebp]
mov dword [esi + 0x64], eax
cmp ebp, 8
jb 0x1002e2cb
cmp dword [esp + 0x20], ebp
jae 0x1002e2ae
mov ecx, ebp
shr ecx, 3
lea esp, [esp]
mov al, byte [edi]
sub ebp, 8
mov byte [ebx], al
mov al, byte [edi + 1]
mov byte [ebx + 1], al
mov al, byte [edi + 2]
mov byte [ebx + 2], al
mov al, byte [edi + 3]
mov byte [ebx + 3], al
mov al, byte [edi + 4]
mov byte [ebx + 4], al
mov al, byte [edi + 5]
mov byte [ebx + 5], al
mov al, byte [edi + 6]
mov byte [ebx + 6], al
mov al, byte [edi + 7]
add edi, 8
mov byte [ebx + 7], al
add ebx, 8
sub ecx, 1
jne 0x1002e270
jmp 0x1002e2cb
mov edx, ebp
shr edx, 3
mov eax, dword [edi]
sub ebp, 8
mov ecx, dword [edi + 4]
add edi, 8
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
sub edx, 1
jne 0x1002e2b3
test ebp, ebp
je 0x1002dc40
mov al, byte [edi]
mov byte [ebx], al
cmp ebp, 1
jbe 0x1002dc40
mov al, byte [edi + 1]
mov byte [ebx + 1], al
cmp ebp, 2
jbe 0x1002dc40
mov al, byte [edi + 2]
mov byte [ebx + 2], al
cmp ebp, 3
jbe 0x1002dc40
mov al, byte [edi + 3]
mov byte [ebx + 3], al
cmp ebp, 4
jbe 0x1002dc40
mov al, byte [edi + 4]
mov byte [ebx + 4], al
cmp ebp, 5
jbe 0x1002dc40
mov al, byte [edi + 5]
cmp ebp, 6
mov ebp, dword [esp + 0x10]
mov byte [ebx + 5], al
jbe 0x1002dc44
mov al, byte [edi + 6]
mov byte [ebx + 6], al
jmp 0x1002dc40
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x1002e78d
dec ebp
mov eax, edi
cmp edi, ecx
jb 0x1002e34f
sub eax, ecx
mov ecx, dword [esi + 0x2d30]
inc edi
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0xb0b8]
inc edx
cmp edx, ecx
jb 0x1002e36c
sub edx, ecx
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e346
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
cmp edx, 0x100
jne 0x1002e3b2
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
push ebp
call fcn.100280b0
test al, al
je 0x1002e79d
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.10025060
test al, al
je 0x1002e79d
jmp 0x1002dc44
cmp edx, 0x101
jne 0x1002e4f9
mov ebp, dword [esi + 0x5c]
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x1002e78d
mov edx, dword [esi + 0x64]
mov edi, edx
mov ecx, dword [esi + 0x48]
sub edi, ecx
mov dword [esp + 0x30], ecx
cmp ecx, edx
jbe 0x1002e41c
mov eax, dword [esi + 0xb0b8]
add edi, eax
cmp ecx, eax
ja 0x1002e3f1
cmp byte [esi + 0x6c], 0
jne 0x1002e41c
mov eax, dword [esi + 0x2d30]
dec ebp
mov byte [edx + eax], 0
mov edx, dword [esi + 0x64]
mov eax, dword [esi + 0xb0b8]
inc edx
cmp edx, eax
jb 0x1002e40c
sub edx, eax
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e3f1
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
mov ecx, dword [esi + 0xb0b8]
lea eax, [ecx - 0x1004]
cmp edi, eax
jae 0x1002e4c3
cmp edx, eax
jae 0x1002e4c3
mov eax, dword [esi + 0x2d30]
add edi, eax
lea ebx, [eax + edx]
lea eax, [edx + ebp]
mov dword [esi + 0x64], eax
cmp ebp, 8
jb 0x1002e2cb
cmp dword [esp + 0x30], ebp
jae 0x1002e4a1
mov ecx, ebp
shr ecx, 3
lea ecx, [ecx]
mov al, byte [edi]
sub ebp, 8
mov byte [ebx], al
mov al, byte [edi + 1]
mov byte [ebx + 1], al
mov al, byte [edi + 2]
mov byte [ebx + 2], al
mov al, byte [edi + 3]
mov byte [ebx + 3], al
mov al, byte [edi + 4]
mov byte [ebx + 4], al
mov al, byte [edi + 5]
mov byte [ebx + 5], al
mov al, byte [edi + 6]
mov byte [ebx + 6], al
mov al, byte [edi + 7]
add edi, 8
mov byte [ebx + 7], al
add ebx, 8
sub ecx, 1
jne 0x1002e460
jmp 0x1002e2cb
mov edx, ebp
shr edx, 3
mov eax, dword [edi]
sub ebp, 8
mov ecx, dword [edi + 4]
add edi, 8
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
sub edx, 1
jne 0x1002e4a6
jmp 0x1002e2cb
dec ebp
mov eax, edi
cmp edi, ecx
jb 0x1002e4cc
sub eax, ecx
mov ecx, dword [esi + 0x2d30]
inc edi
mov al, byte [ecx + eax]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0xb0b8]
inc edx
cmp edx, ecx
jb 0x1002e4e9
sub edx, ecx
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e4c3
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
add edx, 0xfffffefe
lea ecx, [edx + 0x12]
mov ebx, dword [esi + ecx*4]
lea ecx, [esi + ecx*4]
mov dword [esp + 0x30], ebx
je 0x1002e51e
mov edi, edi
mov eax, dword [ecx - 4]
lea ecx, [ecx - 4]
mov dword [ecx + 4], eax
sub edx, 1
jne 0x1002e510
mov dword [esi + 0x48], ebx
mov ecx, 0x10
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp]
mov edi, dword [ebp + 4]
sub ecx, edi
mov edx, dword [ebx + eax]
bswap edx
shr edx, cl
mov ecx, dword [esp + 0x4c]
and edx, 0xfffe
mov eax, dword [ecx + 0x1b78]
cmp edx, dword [ecx + eax*4 + 0x1af8]
jae 0x1002e583
mov ecx, 0x10
sub ecx, eax
shr edx, cl
mov ecx, dword [esp + 0x4c]
movzx edi, byte [edx + ecx + 0x1b7c]
add edi, dword [ebp + 4]
mov eax, edi
shr eax, 3
add ebx, eax
and edi, 7
mov dword [ebp], ebx
mov dword [ebp + 4], edi
movzx eax, word [ecx + edx*2 + 0x1d7c]
jmp 0x1002e5ed
mov ebp, 0xf
inc eax
cmp eax, ebp
jae 0x1002e5a7
lea ecx, [ecx + eax*4]
add ecx, 0x1af8
cmp edx, dword [ecx]
jb 0x1002e5a5
inc eax
add ecx, 4
cmp eax, 0xf
jb 0x1002e596
jmp 0x1002e5a7
mov ebp, eax
add edi, ebp
mov ecx, 0x10
mov eax, edi
sub ecx, ebp
shr eax, 3
and edi, 7
add ebx, eax
mov eax, dword [esp + 0x10]
mov dword [eax], ebx
mov dword [eax + 4], edi
mov eax, dword [esp + 0x4c]
sub edx, dword [eax + ebp*4 + 0x1af4]
shr edx, cl
mov ecx, dword [eax + ebp*4 + 0x1b38]
add ecx, edx
mov edx, eax
cmp ecx, dword [edx + 0x1af4]
sbb eax, eax
and eax, ecx
movzx eax, word [edx + eax*2 + 0x217c]
movzx ebp, ax
cmp ebp, 8
jae 0x1002e5fa
add ebp, 2
jmp 0x1002e64a
mov edx, ebp
and ebp, 3
shr edx, 2
or ebp, 4
dec edx
mov ecx, edx
shl ebp, cl
add ebp, 2
test edx, edx
je 0x1002e64a
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0xc]
mov ecx, 0x10
sub ecx, edi
mov eax, dword [eax + ebx]
bswap eax
shr eax, cl
mov ecx, 0x10
movzx eax, ax
sub ecx, edx
shr eax, cl
lea ecx, [edi + edx]
mov edx, dword [esp + 0x10]
add ebp, eax
mov eax, ecx
shr eax, 3
add eax, ebx
and ecx, 7
mov dword [edx], eax
mov dword [edx + 4], ecx
mov edx, dword [esi + 0x64]
mov edi, edx
mov ecx, dword [esp + 0x30]
sub edi, ecx
mov dword [esi + 0x5c], ebp
cmp ecx, edx
jbe 0x1002e6ab
mov eax, dword [esi + 0xb0b8]
add edi, eax
cmp ecx, eax
ja 0x1002e66e
cmp byte [esi + 0x6c], 0
jne 0x1002e6ab
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x1002e78d
lea ebx, [ebx]
mov eax, dword [esi + 0x2d30]
dec ebp
mov byte [edx + eax], 0
mov edx, dword [esi + 0x64]
mov eax, dword [esi + 0xb0b8]
inc edx
cmp edx, eax
jb 0x1002e69b
sub edx, eax
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e680
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
mov ecx, dword [esi + 0xb0b8]
lea eax, [ecx - 0x1004]
cmp edi, eax
jae 0x1002e753
cmp edx, eax
jae 0x1002e753
mov eax, dword [esi + 0x2d30]
add edi, eax
lea ebx, [eax + edx]
lea eax, [edx + ebp]
mov dword [esi + 0x64], eax
cmp ebp, 8
jb 0x1002e2cb
cmp dword [esp + 0x30], ebp
jae 0x1002e731
mov ecx, ebp
shr ecx, 3
lea esp, [esp]
mov al, byte [edi]
sub ebp, 8
mov byte [ebx], al
mov al, byte [edi + 1]
mov byte [ebx + 1], al
mov al, byte [edi + 2]
mov byte [ebx + 2], al
mov al, byte [edi + 3]
mov byte [ebx + 3], al
mov al, byte [edi + 4]
mov byte [ebx + 4], al
mov al, byte [edi + 5]
mov byte [ebx + 5], al
mov al, byte [edi + 6]
mov byte [ebx + 6], al
mov al, byte [edi + 7]
add edi, 8
mov byte [ebx + 7], al
add ebx, 8
sub ecx, 1
jne 0x1002e6f0
jmp 0x1002e2cb
mov edx, ebp
shr edx, 3
mov eax, dword [edi]
sub ebp, 8
mov ecx, dword [edi + 4]
add edi, 8
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
sub edx, 1
jne 0x1002e736
jmp 0x1002e2cb
mov ebx, dword [esp + 0x4c]
test ebp, ebp
je 0x1002e78d
jmp 0x1002e760
dec ebp
mov eax, edi
cmp edi, ecx
jb 0x1002e769
sub eax, ecx
mov ecx, dword [esi + 0x2d30]
inc edi
mov al, byte [eax + ecx]
mov byte [edx + ecx], al
mov edx, dword [esi + 0x64]
mov ecx, dword [esi + 0xb0b8]
inc edx
cmp edx, ecx
jb 0x1002e786
sub edx, ecx
mov dword [esi + 0x64], edx
test ebp, ebp
jne 0x1002e760
mov ebp, dword [esp + 0x10]
jmp 0x1002dc50
mov byte [ebx + 0x2cd3], 1
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x38
ret 4