Function at 0x1001540c
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2c
call 0x10015418
pop ecx
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov al, byte [edi + 1]
mov byte [esp + 0x13], al
mov al, byte [edi + 2]
mov byte [esp + 0x12], al
mov eax, edx
and eax, 7
cmp eax, 5
ja 0x10015487
add ecx, dword [eax*4 + 0x10015ec0]
jmp ecx
mov ecx, dword [esp + 0x58]
xor esi, esi
mov ebx, edx
sub ebx, eax
mov dword [esp + 4], 0
cmovb ebx, esi
mov esi, ebx
cmp ebx, 0x20
jb 0x100158f8
lea eax, [esi - 0x20]
mov dword [esp + 0x1c], eax
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x14], esi
cmp eax, 0xffffffe0
je 0x10015e7c
mov esi, eax
add eax, 0x20
mov dword [esp + 4], eax
cmp eax, edx
ja 0x10015e8a
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ebx
lea eax, [ebx + 0x1a]
cmp eax, dword [esp + 0x54]
ja 0x10015e6d
movzx ebx, byte [ebp + esi]
mov cl, byte [edi + ebx + 0x43]
cmp cl, 0xff
je 0x10015ce8
movzx ebx, byte [ebp + esi + 1]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015cc9
movzx ebx, byte [ebp + esi + 2]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015ccc
movzx ebx, byte [ebp + esi + 3]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015cd1
movzx ebx, byte [ebp + esi + 4]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015cd6
movzx ebx, byte [ebp + esi + 5]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015cdb
mov byte [esp + 8], dl
movzx ebx, byte [ebp + esi + 6]
mov dl, byte [edi + ebx + 0x43]
mov byte [esp + 2], dl
cmp dl, 0xff
je 0x10015ce0
movzx ebx, byte [ebp + esi + 7]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015ce5
movzx ebx, cl
shl ebx, 0x1a
movzx ebp, ch
shl ebp, 0x14
or ebp, ebx
movzx ebx, al
shl ebx, 0xe
movzx ecx, dh
shl ecx, 8
or ecx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x48]
mov byte [esp + 3], dl
movzx edx, byte [esp + 8]
shl edx, 2
movzx eax, ah
mov ebx, eax
shr eax, 4
or eax, edx
or eax, ecx
shl ebx, 0x1c
movzx ecx, byte [esp + 2]
shl ecx, 0x16
or ecx, ebx
movzx edx, byte [esp + 3]
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [ecx + ebx + 4], edx
bswap eax
mov dword [ecx + ebx], eax
movzx ebx, byte [ebp + esi + 8]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015d09
movzx ebx, byte [ebp + esi + 9]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015d13
movzx ebx, byte [ebp + esi + 0xa]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015d1d
movzx ebx, byte [ebp + esi + 0xb]
mov cl, byte [edi + ebx + 0x43]
cmp cl, 0xff
je 0x10015d27
movzx ebx, byte [ebp + esi + 0xc]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015d31
movzx ebx, byte [ebp + esi + 0xd]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015d3b
mov byte [esp + 8], dh
movzx ebx, byte [ebp + esi + 0xe]
mov dh, byte [edi + ebx + 0x43]
mov byte [esp + 2], dh
cmp dh, 0xff
je 0x10015d42
movzx ebx, byte [ebp + esi + 0xf]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015d49
movzx ebx, dl
shl ebx, 0x1a
movzx ebp, ah
shl ebp, 0x14
or ebp, ebx
movzx ebx, ch
shl ebx, 0xe
movzx ecx, cl
shl ecx, 8
or ecx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x48]
mov byte [esp + 3], dh
movzx edx, byte [esp + 8]
shl edx, 2
movzx eax, al
mov ebx, eax
shr eax, 4
or eax, edx
or eax, ecx
shl ebx, 0x1c
movzx ecx, byte [esp + 2]
shl ecx, 0x16
or ecx, ebx
movzx edx, byte [esp + 3]
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [ecx + ebx + 0xa], edx
bswap eax
mov dword [ecx + ebx + 6], eax
movzx ebx, byte [ebp + esi + 0x10]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015d50
movzx ebx, byte [ebp + esi + 0x11]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015d57
movzx ebx, byte [ebp + esi + 0x12]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015d5e
movzx ebx, byte [ebp + esi + 0x13]
mov cl, byte [edi + ebx + 0x43]
cmp cl, 0xff
je 0x10015d65
movzx ebx, byte [ebp + esi + 0x14]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015d6c
movzx ebx, byte [ebp + esi + 0x15]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015d73
mov byte [esp + 8], dh
movzx ebx, byte [ebp + esi + 0x16]
mov dh, byte [edi + ebx + 0x43]
mov byte [esp + 2], dh
cmp dh, 0xff
je 0x10015d7a
movzx ebx, byte [ebp + esi + 0x17]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015d81
movzx ebx, dl
shl ebx, 0x1a
movzx ebp, ah
shl ebp, 0x14
or ebp, ebx
movzx ebx, ch
shl ebx, 0xe
movzx ecx, cl
shl ecx, 8
or ecx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x48]
mov byte [esp + 3], dh
movzx edx, byte [esp + 8]
shl edx, 2
movzx eax, al
mov ebx, eax
shr eax, 4
or eax, edx
or eax, ecx
shl ebx, 0x1c
movzx ecx, byte [esp + 2]
shl ecx, 0x16
or ecx, ebx
movzx edx, byte [esp + 3]
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [ecx + ebx + 0x10], edx
bswap eax
mov dword [ecx + ebx + 0xc], eax
movzx ebx, byte [ebp + esi + 0x18]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015d88
movzx ebx, byte [ebp + esi + 0x19]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015d8f
movzx ebx, byte [ebp + esi + 0x1a]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015d96
movzx ebx, byte [ebp + esi + 0x1b]
mov cl, byte [edi + ebx + 0x43]
cmp cl, 0xff
je 0x10015d9d
movzx ebx, byte [ebp + esi + 0x1c]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015da4
movzx ebx, byte [ebp + esi + 0x1d]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015dab
mov byte [esp + 8], dh
movzx ebx, byte [ebp + esi + 0x1e]
mov dh, byte [edi + ebx + 0x43]
mov byte [esp + 2], dh
cmp dh, 0xff
je 0x10015db2
movzx ebx, byte [ebp + esi + 0x1f]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015db9
movzx ebx, dl
shl ebx, 0x1a
movzx ebp, ah
shl ebp, 0x14
or ebp, ebx
movzx ebx, ch
shl ebx, 0xe
movzx ecx, cl
shl ecx, 8
or ecx, ebx
or ecx, ebp
mov ebp, dword [esp + 0x48]
mov byte [esp + 3], dh
movzx edx, byte [esp + 8]
shl edx, 2
movzx eax, al
mov ebx, eax
shr eax, 4
or eax, edx
or eax, ecx
shl ebx, 0x1c
movzx ecx, byte [esp + 2]
shl ecx, 0x16
or ecx, ebx
movzx edx, byte [esp + 3]
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [ecx + ebx + 0x16], edx
bswap eax
mov dword [ecx + ebx + 0x12], eax
add ebx, 0x18
mov ecx, dword [esp + 0x18]
add ecx, 0xfffffffc
mov edx, dword [esp + 4]
mov eax, edx
cmp edx, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x14]
jbe 0x100154b6
jmp 0x100158fa
xor ebx, ebx
cmp esi, 8
jb 0x10015a6e
add esi, 0xfffffff8
cmp dword [esp + 4], esi
jae 0x10015a6e
mov dword [esp + 0x14], esi
mov eax, dword [esp + 4]
mov esi, ecx
mov ecx, edi
lea edi, [eax + 8]
cmp eax, 0xfffffff8
je 0x10015e59
mov dword [esp + 4], edi
cmp edi, edx
ja 0x10015e66
mov ebp, eax
lea eax, [ebx + 8]
cmp ebx, 0xfffffff7
ja 0x10015e4a
mov dword [esp + 0xc], ebx
mov dword [esp + 0x18], esi
cmp eax, dword [esp + 0x54]
ja 0x10015e52
mov edi, ecx
mov esi, dword [esp + 0x48]
movzx ebx, byte [esi + ebp]
mov cl, byte [ecx + ebx + 0x43]
cmp cl, 0xff
je 0x10015cae
movzx ebx, byte [esi + ebp + 1]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015c7f
movzx ebx, byte [esi + ebp + 2]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015c92
movzx ebx, byte [esi + ebp + 3]
mov dh, byte [edi + ebx + 0x43]
cmp dh, 0xff
je 0x10015c97
movzx ebx, byte [esi + ebp + 4]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015c9c
movzx ebx, byte [esi + ebp + 5]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015ca1
mov byte [esp + 8], dl
movzx ebx, byte [esi + ebp + 6]
mov dl, byte [edi + ebx + 0x43]
mov byte [esp + 2], dl
cmp dl, 0xff
je 0x10015ca6
movzx ebx, byte [esi + ebp + 7]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015cab
movzx esi, cl
shl esi, 0x1a
movzx ebx, ch
shl ebx, 0x14
or ebx, esi
movzx esi, al
shl esi, 0xe
movzx ecx, dh
shl ecx, 8
or ecx, esi
or ecx, ebx
mov ebx, edx
movzx edx, byte [esp + 8]
shl edx, 2
movzx eax, ah
mov esi, eax
shr eax, 4
or eax, edx
or eax, ecx
shl esi, 0x1c
movzx ecx, byte [esp + 2]
shl ecx, 0x16
or ecx, esi
movzx edx, bl
shl edx, 0x10
or edx, ecx
bswap edx
mov ecx, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [ecx + ebx + 4], edx
bswap eax
mov dword [ecx + ebx], eax
add ebx, 6
mov ecx, dword [esp + 0x18]
dec ecx
mov ebp, dword [esp + 4]
mov eax, ebp
cmp ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
jb 0x10015918
jmp 0x10015a76
mov ebp, dword [esp + 4]
mov esi, dword [esp + 0x54]
cmp ecx, 2
jb 0x10015c4b
lea eax, [edx - 7]
mov dword [esp + 0x20], eax
mov eax, ebp
neg eax
mov dword [esp + 4], eax
lea eax, [edx - 5]
mov dword [esp + 0x24], eax
lea eax, [edx - 3]
mov dword [esp + 0x28], eax
lea eax, [edx - 1]
mov dword [esp + 0x1c], eax
dec ecx
mov dword [esp + 0x18], ecx
cmp ebp, edx
ja 0x10015eb1
lea ecx, [ebx + 6]
cmp ebx, 0xfffffff9
ja 0x10015ea5
cmp ecx, esi
ja 0x10015e99
cmp edx, ebp
je 0x10015dea
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x48]
movzx ebx, byte [eax + ebp]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015cae
cmp dword [esp + 0x1c], ebp
je 0x10015df3
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x48]
movzx ebx, byte [eax + ebp + 1]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015c7f
mov byte [esp + 2], al
mov eax, dword [esp + 4]
add edx, eax
cmp edx, 3
jb 0x10015dfd
mov eax, dword [esp + 0x48]
movzx ebx, byte [eax + ebp + 2]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015c92
cmp dword [esp + 0x28], ebp
je 0x10015e09
mov byte [esp + 3], al
mov dword [esp + 8], ecx
mov eax, dword [esp + 0x48]
movzx ebx, byte [eax + ebp + 3]
mov ch, byte [edi + ebx + 0x43]
cmp ch, 0xff
je 0x10015c97
cmp edx, 5
jb 0x10015e15
movzx ebx, byte [eax + ebp + 4]
mov al, byte [edi + ebx + 0x43]
cmp al, 0xff
je 0x10015c9c
cmp dword [esp + 0x24], ebp
je 0x10015e21
mov esi, dword [esp + 0x48]
movzx ebx, byte [esi + ebp + 5]
mov ah, byte [edi + ebx + 0x43]
cmp ah, 0xff
je 0x10015ca1
cmp edx, 7
jb 0x10015e2d
mov edx, dword [esp + 0x48]
movzx ebx, byte [edx + ebp + 6]
mov cl, byte [edi + ebx + 0x43]
cmp cl, 0xff
je 0x10015ca6
cmp dword [esp + 0x20], ebp
je 0x10015e39
movzx ebx, byte [edx + ebp + 7]
mov dl, byte [edi + ebx + 0x43]
cmp dl, 0xff
je 0x10015cab
movzx ebx, byte [esp + 0x14]
shl ebx, 0x1a
movzx esi, byte [esp + 2]
shl esi, 0x14
or esi, ebx
movzx ebx, byte [esp + 3]
shl ebx, 0xe
or ebx, esi
movzx esi, ch
shl esi, 8
or esi, ebx
movzx ebx, al
shl ebx, 2
or ebx, esi
movzx eax, ah
mov esi, eax
shr eax, 4
or eax, ebx
shl esi, 0x1c
movzx ecx, cl
shl ecx, 0x16
or ecx, esi
movzx edx, dl
shl edx, 0x10
or edx, ecx
bswap eax
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0xc]
mov dword [ecx + esi], eax
bswap edx
mov word [ecx + esi + 4], dx
add ebp, 8
add dword [esp + 4], 0xfffffff8
mov ecx, dword [esp + 8]
mov ebx, ecx
dec dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
jne 0x10015aa8
jmp 0x10015c4d
mov ecx, ebx
add edi, 0x43
movzx eax, byte [esp + 0x12]
mov ebx, ecx
movzx ecx, byte [esp + 0x13]
push eax
push ecx
push edi
push ebx
push esi
push dword [esp + 0x64]
push ebp
push edx
push dword [esp + 0x68]
mov esi, dword [esp + 0x64]
push esi
call fcn.10015f54
add esp, 0x28
mov eax, esi
jmp 0x10015de2
inc ebp
jmp 0x10015cae
add ebp, 2
jmp 0x10015cae
add ebp, 3
jmp 0x10015cae
add ebp, 4
jmp 0x10015cae
add ebp, 5
jmp 0x10015cae
add ebp, 6
jmp 0x10015cae
add ebp, 7
mov eax, ebp
shl eax, 0x18
shr ebp, 8
shld ebp, eax, 8
movzx ecx, bl
shl ecx, 8
mov eax, dword [esp + 0x40]
mov dword [eax + 8], ebp
jmp 0x10015d01
inc esi
jmp 0x10015ce8
add esi, 2
jmp 0x10015ce8
add esi, 3
jmp 0x10015ce8
add esi, 4
jmp 0x10015ce8
add esi, 5
jmp 0x10015ce8
add esi, 6
jmp 0x10015ce8
add esi, 7
mov eax, esi
shl eax, 0x18
shr esi, 8
shld esi, eax, 8
movzx ecx, bl
shl ecx, 8
mov eax, dword [esp + 0x40]
mov dword [eax + 8], esi
mov dword [eax + 4], ecx
jmp 0x10015ddc
mov edx, 8
jmp 0x10015dbe
mov edx, 9
jmp 0x10015dbe
mov edx, 0xa
jmp 0x10015dbe
mov edx, 0xb
jmp 0x10015dbe
mov edx, 0xc
jmp 0x10015dbe
mov edx, 0xd
jmp 0x10015dbe
mov edx, 0xe
jmp 0x10015dbe
mov edx, 0xf
jmp 0x10015dbe
mov edx, 0x10
jmp 0x10015dbe
mov edx, 0x11
jmp 0x10015dbe
mov edx, 0x12
jmp 0x10015dbe
mov edx, 0x13
jmp 0x10015dbe
mov edx, 0x14
jmp 0x10015dbe
mov edx, 0x15
jmp 0x10015dbe
mov edx, 0x16
jmp 0x10015dbe
mov edx, 0x17
jmp 0x10015dbe
mov edx, 0x18
jmp 0x10015dbe
mov edx, 0x19
jmp 0x10015dbe
mov edx, 0x1a
jmp 0x10015dbe
mov edx, 0x1b
jmp 0x10015dbe
mov edx, 0x1c
jmp 0x10015dbe
mov edx, 0x1d
jmp 0x10015dbe
mov edx, 0x1e
jmp 0x10015dbe
mov edx, 0x1f
add edx, esi
mov ecx, edx
shl ecx, 0x18
shr edx, 8
shld edx, ecx, 8
movzx ecx, bl
shl ecx, 8
mov eax, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax], 2
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push 0x100599f0
jmp 0x10015e43
xor eax, eax
inc eax
push 0x10059a00
jmp 0x10015e43
mov eax, 2
push 0x10059a10
jmp 0x10015e43
mov eax, 3
push 0x10059a20
jmp 0x10015e43
mov eax, 4
push 0x10059a30
jmp 0x10015e43
mov eax, 5
push 0x10059a40
jmp 0x10015e43
mov eax, 6
push 0x10059a50
jmp 0x10015e43
mov eax, 7
push 0x10059a60
push eax
push eax
call fcn.100538f0
push 0x100599c0
push eax
jmp 0x10015eab
push 0x100599c0
jmp 0x10015e72
push 0x100599b0
push edi
push 0xfffffffffffffff8
call fcn.10053bd0
push 0x100599b0
jmp 0x10015e8f
push 0x100599a0
push dword [esp + 0x58]
push eax
call fcn.10053bb0
push 0x10059990
push 0
push 0xffffffffffffffe0
call fcn.10053bd0
push 0x10059990
push edx
push dword [esp + 0xc]
call fcn.10053bb0
push 0x100599e0
push esi
push ecx
call fcn.10053bb0
push 0x100599e0
push ecx
push ebx
call fcn.10053bd0
push 0x100599d0
push edx
push ebp
call fcn.10053b90
nop
nop
nop
pop esp
add byte [eax], al
add byte [esi], ch
add byte [eax], al
add byte [ebp], dl
add byte [eax], al
push 0
add byte [eax], al
arpl word [eax], ax
add byte [eax], al
add byte cs:[eax], al
add byte [eax - 0x75], dl
inc esp
and al, 0xc
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
cmp byte [ecx], 0
je 0x10015f05
inc ecx
mov edx, esp
mov dword [edx], ecx
push 0x10059b8c
push edx
push 4
push 0x10059b88
push eax
call fcn.100416a0
add esp, 0x14
pop ecx
ret
push 4
push 0x10059b84
push eax
call fcn.100414a0
add esp, 0xc
pop ecx
ret