Function at 0x10094c40
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
xor edx, edx
push ebp
push esi
mov ebp, 0x101db6a0
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.0x10094c39
jmp dword [eax*4 + 0x100953b0]
test edx, edx
je 0x1009529f
mov ebp, edx
xor edx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], edx
cmp byte [ebx + 0x14], dl
je 0x10094c61
movzx eax, byte [ebx + 0x1b]
mov dword [edi + eax*8 + 0x6c], edx
cmp byte [ebx + 0x14], 0x66
jne 0x10094c20
mov al, byte [ebx + 0x1b]
cmp byte [ebx + 0x18], al
jne 0x10094c7a
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 0x10094c20
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x10094cba
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 0x100950f5
xor eax, eax
movzx esi, ax
jmp 0x100950f5
cmp dword [edi + 0xc], esi
je 0x10094cba
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 0x100950f5
mov eax, dword [edi + 0xc]
sub eax, 0
je 0x10094cba
movzx ecx, byte [edi + 0xef]
sub eax, 4
movzx eax, byte [edi + 0xec]
je 0x10094d1c
add ax, 0x21
shl cx, 2
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x100950f5
inc ax
shl cx, 3
add cx, ax
movzx eax, cx
movzx esi, ax
jmp 0x100950f5
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.10097250
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, eax
jmp 0x1009505b
mov eax, dword [edi]
jmp dword [eax*4 + 0x10095428]
xor eax, eax
cmp dword [edi], eax
setne al
movzx esi, ax
jmp 0x100950f5
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.10096ff0
mov esi, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, eax
jmp 0x1009505b
lea eax, [esp + 0x14]
push eax
push edi
push ebx
call fcn.10096ff0
mov ecx, eax
add esp, 0xc
test ecx, ecx
jns 0x10094da6
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
jmp 0x1009505b
mov edx, dword [esp + 0x18]
xor eax, eax
cmp word [esp + 0x14], 3
mov ecx, 0x100000
setne al
movzx esi, ax
jmp 0x1009505b
cmp byte [edi + 0xfa], 0
jne 0x10094e21
mov al, byte [edi + 8]
mov byte [edi + 0xfa], al
cmp al, 0xf
jb 0x10094de2
mov ecx, 0x80200002
jmp 0x1009505b
cmp dword [ebx + 0xc], esi
jbe 0x10094e32
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 0x1009505b
mov ecx, 0x80200000
jmp 0x1009505b
cmp byte [edi + 0xfa], 0
jne 0x10094e9b
mov al, byte [edi + 8]
mov byte [edi + 0xfa], al
cmp al, 0xf
jb 0x10094e5c
mov ecx, 0x80200002
jmp 0x1009505b
cmp dword [ebx + 0xc], esi
jbe 0x10094e32
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 0x1009505b
xor eax, eax
cmp byte [ebx + 0x11], al
setne al
movzx esi, ax
jmp 0x100950f5
movzx eax, byte [ebx + 0x14]
sub eax, 0x66
je 0x10094f2e
sub eax, 0x8c
je 0x10094f0b
sub eax, 1
je 0x10094ee8
push 0
push ebp
mov esi, 1
call fcn.10099d90
add esp, 8
mov edx, eax
jmp 0x100950f5
movzx eax, byte [ebx + 0x1b]
mov esi, 3
push 0
push ebp
mov dword [edi + eax*8 + 0x6c], 2
call fcn.10099d90
add esp, 8
mov edx, eax
jmp 0x100950f5
movzx eax, byte [ebx + 0x1b]
mov esi, 4
push 0
push ebp
mov dword [edi + eax*8 + 0x6c], 2
call fcn.10099d90
add esp, 8
mov edx, eax
jmp 0x100950f5
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.10099d90
add esp, 8
mov edx, eax
jmp 0x100950f5
cmp dword [edi], esi
jne 0x10094f75
mov eax, dword [ebx + 4]
cmp byte [eax + 6], 0
je 0x10094f75
mov esi, 2
jmp 0x100950f5
mov ecx, dword [edi + 0x24]
xor eax, eax
and ecx, 0x800
or eax, ecx
je 0x10094f90
movzx eax, byte [ebx + 0x18]
mov dword [edi + eax*8 + 0x6c], 1
mov eax, dword [edi]
jmp dword [eax*4 + 0x10095440]
mov eax, dword [edi]
jmp dword [eax*4 + 0x10095458]
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 0x100950f5
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 0x100950f5
mov eax, dword [ebx + 4]
movzx esi, byte [eax + 9]
jmp 0x100950f5
movzx esi, byte [edi + 0xf3]
jmp 0x100950f5
movzx esi, byte [edi + 0xf0]
jmp 0x100950f5
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 1
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 2
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 3
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 4
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 5
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 6
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 7
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 8
jmp 0x100950f2
mov eax, dword [ebx]
mov esi, dword [eax + 8]
shr esi, 9
jmp 0x100950f2
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.10099d90
mov cl, byte [esp + 0x1b]
add esp, 8
mov ebp, eax
mov dword [esp + 0x1c], ebp
test cl, cl
je 0x100953a1
js 0x100953a1
mov edx, dword [esp + 0x18]
jmp 0x10094c20
lea eax, [esp + 0x14]
push eax
movzx eax, word [ebp + 1]
push eax
push dword [edi + 0xc]
call fcn.1009a130
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 0x1009515c
mov al, 1
jmp 0x1009515e
xor al, al
mov ecx, dword [edi]
mov ah, al
cmp ecx, 1
je 0x10095183
cmp ecx, 3
je 0x10095183
test ecx, ecx
jne 0x10095185
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 0x10095185
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 + 0x101d96d0]
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 0x100951b4
mov byte [edi + 0x16], 8
mov ecx, dword [esi + 4]
xor eax, eax
mov ebp, dword [edx]
and ecx, 0x1000
or eax, ecx
je 0x100951c9
mov dl, 1
jmp 0x100951cb
xor dl, dl
mov eax, dword [edi]
cmp eax, 1
je 0x100951e0
cmp eax, 3
je 0x100951e0
test eax, eax
jne 0x100951e3
add dl, 4
jmp 0x100951e3
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 + 0x101d9710]
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.1009a0a0
push dword [esp + 0x28]
push edi
push ebx
call fcn.10096340
add esp, 0x14
test eax, eax
js 0x100953a6
push dword [esp + 0x14]
push edi
push ebx
call fcn.10094470
add esp, 0xc
test eax, eax
js 0x100953a6
cmp dword [edi + 0xc], 1
jne 0x100952d7
cmp byte [edi + 8], 0xf
jb 0x1009525b
pop edi
pop esi
pop ebp
mov eax, 0x80200002
pop ebx
add esp, 0x14
ret
cmp dword [ebx + 0xc], 0
jbe 0x10095355
mov eax, dword [ebx + 8]
push 0xf
push 0x101db6a0
mov al, byte [eax]
mov byte [edi + 0x14], al
inc dword [ebx + 8]
inc byte [edi + 8]
dec dword [ebx + 0xc]
call fcn.10099d90
push 0xf
push eax
call fcn.10099d90
movzx ecx, byte [edi + 0x14]
push ecx
push eax
call fcn.10099d90
mov ecx, eax
add esp, 0x18
cmp byte [ecx], 0
jne 0x100952ac
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.10099d90
lea ecx, [esp + 0x1c]
push ecx
movzx eax, word [eax + 1]
push eax
push dword [edi + 0xc]
call fcn.1009a130
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 0x100953a1
push ecx
push edi
push ebx
call fcn.100986a0
mov eax, dword [edi + 0xc]
add esp, 0xc
add eax, 0xfffffffe
cmp eax, 3
ja case.default.0x1009534e
jmp dword [eax*4 + 0x10095470]
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.100980b0
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x18]
call fcn.1009a0d0
add esp, 8
test al, al
je 0x10095394
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