Function at 0x1008b740
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
xor edx, edx
push ebp
push esi
mov ebp, 0x101cb6a0
mov dword [esp + 0x14], edx
push edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebp
nop
mov al, byte [ebp]
xor esi, esi
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x14], esi
cmp eax, 0x1d
ja case.default.0x1008b739
jmp dword [eax*4 + 0x1008beb0]
test edx, edx
je 0x1008bd9f
mov ebp, edx
xor edx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
cmp byte [ebx + 0x14], dl
je 0x1008b761
movzx eax, byte [ebx + 0x1b]
mov dword [edi + eax*8 + 0x6c], edx
cmp byte [ebx + 0x14], 0x66
jne 0x1008b720
mov al, byte [ebx + 0x1b]
cmp byte [ebx + 0x18], al
jne 0x1008b77a
movzx eax, al
mov dword [edi + eax*8 + 0x6c], 1
mov eax, dword [edi + 0x20]
or dword [edi + 0x24], 0x800
mov dword [edi + 0x20], eax
jmp 0x1008b720
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x1008b7ba
movzx eax, byte [edi + 0xef]
mov cx, ax
add ax, ax
add cx, ax
movzx eax, byte [edi + 0xeb]
sub ax, 7
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x1008bbf5
xor eax, eax
movzx esi, ax
jmp 0x1008bbf5
cmp dword [edi + 0xc], esi
je 0x1008b7ba
movzx eax, byte [edi + 0xeb]
movzx ecx, byte [edi + 0xef]
inc ax
shl cx, 2
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x1008bbf5
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x1008b7ba
movzx ecx, byte [edi + 0xef]
sub eax, 4
movzx eax, byte [edi + 0xec]
je 0x1008b81c
add ax, 0x21
shl cx, 2
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x1008bbf5
inc ax
shl cx, 3
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x1008bbf5
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.1008dd50
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, eax
jmp 0x1008bb5b
mov eax, dword [edi]
jmp dword [eax*4 + 0x1008bf28]
xor eax, eax
cmp dword [edi], eax
setne al
movzx esi, ax
jmp 0x1008bbf5
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.1008daf0
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, eax
jmp 0x1008bb5b
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.1008daf0
mov ecx, eax
add esp, 0xc
test ecx, ecx
jns 0x1008b8a6
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x1008bb5b
mov edx, dword [esp + 0x18]
xor eax, eax
cmp word [esp + 0x14], 3
mov ecx, 0x100000
setne al
movzx esi, ax
jmp 0x1008bb5b
cmp byte [edi + 0xfa], 0
jne 0x1008b921
mov al, byte [edi + 8]
mov byte [edi + 0xfa], al
cmp al, 0xf
jb 0x1008b8e2
mov ecx, 0x80200002
jmp 0x1008bb5b
cmp dword [ebx + 0xc], esi
jbe 0x1008b932
mov eax, dword [ebx + 8]
mov cl, byte [eax]
inc eax
mov dword [ebx + 8], eax
inc byte [edi + 8]
dec dword [ebx + 0xc]
mov eax, dword [edi + 0x24]
or dword [edi + 0x20], 1
mov dword [edi + 0x24], eax
mov al, cl
shr al, 6
mov byte [edi + 0xf7], al
mov al, cl
shr al, 3
and al, 7
and cl, 7
mov byte [edi + 0xf8], al
mov byte [edi + 0xf9], cl
movzx esi, byte [edi + 0xf8]
mov ecx, 0x100000
jmp 0x1008bb5b
mov ecx, 0x80200000
jmp 0x1008bb5b
cmp byte [edi + 0xfa], 0
jne 0x1008b99b
mov al, byte [edi + 8]
mov byte [edi + 0xfa], al
cmp al, 0xf
jb 0x1008b95c
mov ecx, 0x80200002
jmp 0x1008bb5b
cmp dword [ebx + 0xc], esi
jbe 0x1008b932
mov eax, dword [ebx + 8]
mov cl, byte [eax]
inc eax
mov dword [ebx + 8], eax
inc byte [edi + 8]
dec dword [ebx + 0xc]
mov eax, dword [edi + 0x24]
or dword [edi + 0x20], 1
mov dword [edi + 0x24], eax
mov al, cl
shr al, 6
mov byte [edi + 0xf7], al
mov al, cl
shr al, 3
and al, 7
and cl, 7
mov byte [edi + 0xf8], al
mov byte [edi + 0xf9], cl
movzx esi, byte [edi + 0xf9]
mov ecx, 0x100000
jmp 0x1008bb5b
xor eax, eax
cmp byte [ebx + 0x11], al
setne al
movzx esi, ax
jmp 0x1008bbf5
movzx eax, byte [ebx + 0x14]
sub eax, 0x66
je 0x1008ba2e
sub eax, 0x8c
je 0x1008ba0b
sub eax, 1
je 0x1008b9e8
push 0
push ebp
mov esi, 1
call fcn.10090880
add esp, 8
mov edx, eax
jmp 0x1008bbf5
movzx eax, byte [ebx + 0x1b]
mov esi, 3
push 0
push ebp
mov dword [edi + eax*8 + 0x6c], 2
call fcn.10090880
add esp, 8
mov edx, eax
jmp 0x1008bbf5
movzx eax, byte [ebx + 0x1b]
mov esi, 4
push 0
push ebp
mov dword [edi + eax*8 + 0x6c], 2
call fcn.10090880
add esp, 8
mov edx, eax
jmp 0x1008bbf5
movzx eax, byte [ebx + 0x1b]
mov esi, 2
push 0
push ebp
mov dword [edi + eax*8 + 0x6c], 2
mov eax, dword [edi + 0x20]
and dword [edi + 0x24], 0xfffff7ff
mov dword [edi + 0x20], eax
call fcn.10090880
add esp, 8
mov edx, eax
jmp 0x1008bbf5
cmp dword [edi], esi
jne 0x1008ba75
mov eax, dword [ebx + 4]
cmp byte [eax + 6], 0
je 0x1008ba75
mov esi, 2
jmp 0x1008bbf5
mov ecx, dword [edi + 0x24]
xor eax, eax
and ecx, 0x800
or eax, ecx
je 0x1008ba90
movzx eax, byte [ebx + 0x18]
mov dword [edi + eax*8 + 0x6c], 1
mov eax, dword [edi]
jmp dword [eax*4 + 0x1008bf40]
mov eax, dword [edi]
jmp dword [eax*4 + 0x1008bf58]
mov eax, dword [ebx + 4]
mov ecx, 0x80200001
movzx eax, byte [eax + 0xb]
cmp eax, 3
mov esi, eax
mov eax, 0x100000
cmovne ecx, eax
test ecx, ecx
jns 0x1008bbf5
pop edi
pop esi
pop ebp
mov eax, ecx
pop ebx
add esp, 0x14
ret
mov eax, dword [ebx + 4]
movzx esi, byte [eax + 6]
jmp 0x1008bbf5
mov eax, dword [ebx + 4]
movzx esi, byte [eax + 9]
jmp 0x1008bbf5
movzx esi, byte [edi + 0xf3]
jmp 0x1008bbf5
movzx esi, byte [edi + 0xf0]
jmp 0x1008bbf5
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 1
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 2
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 3
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 4
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 5
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 6
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 7
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 8
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 9
jmp 0x1008bbf2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 0xa
and esi, 1
push esi
push ebp
mov dword [esp + 0x20], edx
call fcn.10090880
mov cl, byte [esp + 0x1b]
add esp, 8
mov ebp, eax
mov dword [esp + 0x1c], ebp
test cl, cl
je 0x1008bea1
js 0x1008bea1
mov edx, dword [esp + 0x18]
jmp 0x1008b720
lea eax, [esp + 0x14]
push eax
movzx eax, word [ebp + 1]
push eax
push dword [edi + 0xc]
call fcn.10090c20
mov eax, dword [esp + 0x20]
lea esi, [edi + 0x20]
mov ecx, dword [esi + 4]
lea edx, [ebx + 4]
mov ebp, dword [edx]
and ecx, 0x800
mov dword [esp + 0x24], eax
add esp, 0xc
xor eax, eax
or eax, ecx
je 0x1008bc5c
mov al, 1
jmp 0x1008bc5e
xor al, al
mov ecx, dword [edi]
mov ah, al
cmp ecx, 1
je 0x1008bc83
cmp ecx, 3
je 0x1008bc83
test ecx, ecx
jne 0x1008bc85
mov al, byte [ebp + 6]
lea edx, [ebx + 4]
and al, 1
lea esi, [edi + 0x20]
add al, 2
add al, al
add al, ah
jmp 0x1008bc85
add al, 2
mov ecx, dword [esp + 0x18]
movzx eax, al
movzx ecx, byte [ecx + 5]
and ecx, 7
mov al, byte [eax + ecx*8 + 0x101c96d0]
mov byte [edi + 0x16], al
shr al, 5
mov byte [ebp + 4], al
mov eax, dword [esp + 0x18]
mov al, byte [eax + 5]
and al, 7
cmp al, 1
jne 0x1008bcb4
mov byte [edi + 0x16], 8
mov ecx, dword [esi + 4]
xor eax, eax
mov ebp, dword [edx]
and ecx, 0x1000
or eax, ecx
je 0x1008bcc9
mov dl, 1
jmp 0x1008bccb
xor dl, dl
mov eax, dword [edi]
cmp eax, 1
je 0x1008bce0
cmp eax, 3
je 0x1008bce0
test eax, eax
jne 0x1008bce3
add dl, 4
jmp 0x1008bce3
add dl, 2
mov eax, dword [esp + 0x14]
movzx ecx, byte [eax + 5]
shr ecx, 3
movzx eax, dl
and ecx, 3
mov al, byte [eax + ecx*8 + 0x101c9710]
mov byte [edi + 0x17], al
shr al, 5
mov byte [ebp + 5], al
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x20]
call fcn.10090b90
push dword [esp + 0x28]
push edi
push ebx
call fcn.1008ce40
add esp, 0x14
test eax, eax
js 0x1008bea6
push dword [esp + 0x14]
push edi
push ebx
call fcn.1008af70
add esp, 0xc
test eax, eax
js 0x1008bea6
cmp dword [edi + 0xc], 1
jne 0x1008bdd7
cmp byte [edi + 8], 0xf
jb 0x1008bd5b
pop edi
pop esi
pop ebp
mov eax, 0x80200002
pop ebx
add esp, 0x14
ret
cmp dword [ebx + 0xc], 0
jbe 0x1008be55
mov eax, dword [ebx + 8]
push 0xf
push 0x101cb6a0
mov al, byte [eax]
mov byte [edi + 0x14], al
inc dword [ebx + 8]
inc byte [edi + 8]
dec dword [ebx + 0xc]
call fcn.10090880
push 0xf
push eax
call fcn.10090880
movzx ecx, byte [edi + 0x14]
push ecx
push eax
call fcn.10090880
mov ecx, eax
add esp, 0x18
cmp byte [ecx], 0
jne 0x1008bdac
pop edi
pop esi
pop ebp
mov eax, 0x80200001
pop ebx
add esp, 0x14
ret
xor eax, eax
cmp byte [edi + 0xf7], 3
setne al
movzx eax, ax
push eax
push ecx
call fcn.10090880
lea ecx, [esp + 0x1c]
push ecx
movzx eax, word [eax + 1]
push eax
push dword [edi + 0xc]
call fcn.10090c20
add esp, 0x14
mov ecx, dword [esp + 0x14]
movzx eax, word [ecx]
and eax, 0x7ff
mov dword [edi + 4], eax
mov al, byte [ecx + 2]
and al, 0xf
mov byte [edi + 0x18], al
mov al, byte [ecx + 2]
shr al, 4
and al, 7
mov byte [edi + 0x19], al
mov eax, dword [ebx + 4]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
movzx eax, byte [ecx + 7]
shr eax, 1
mov dword [edi + 0x54], eax
movzx eax, byte [ecx + 8]
mov dword [edi + 0x58], eax
movzx eax, byte [ecx + 9]
and eax, 0x7f
mov dword [edi + 0x5c], eax
movzx eax, byte [ecx + 0xa]
and eax, 3
mov dword [edi + 0x60], eax
movzx eax, byte [ecx + 0xa]
shr eax, 2
mov dword [edi + 0x64], eax
mov eax, dword [ebx]
test byte [eax + 8], 1
jne 0x1008bea1
push ecx
push edi
push ebx
call fcn.1008f1a0
mov eax, dword [edi + 0xc]
add esp, 0xc
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x1008be4e
jmp dword [eax*4 + 0x1008bf70]
pop edi
pop esi
pop ebp
mov eax, 0x80200000
pop ebx
add esp, 0x14
ret
push dword [esp + 0x14]
push edi
push dword [ebx + 4]
call fcn.1008ebb0
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.10090bc0
add esp, 8
test al, al
je 0x1008be94
mov ecx, dword [edi + 0x24]
or dword [edi + 0x20], 0x200
mov dword [edi + 0x24], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x28], ecx
add ecx, 0x14
mov dword [edi + 0x2c], ecx
mov eax, 0x100000
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret