Function at 0x10045a30
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x34
mov eax, 0x1009699b
mov edx, 2
lea ecx, [ecx]
mov ecx, 0x1000
mov byte [eax], 0
add eax, 4
sub ecx, 1
jne 0x10045a45
sub edx, 1
jne 0x10045a40
push ebx
push ebp
push esi
push edi
lea esp, [esp]
xor ebx, ebx
lea ebp, [ebx + 0x3f]
xor esi, esi
test ebp, ebp
jbe 0x10045aa3
mov edi, 0x20
shl edi, cl
test edi, edi
jbe 0x10045a9e
xor edx, edx
test ecx, ecx
sete dl
lea eax, [ebx + ecx*2]
lea eax, [edx + eax*2]
shl eax, 0xb
add eax, esi
lea eax, [eax*8 + 0x1009e99c]
mov edx, edi
mov byte [eax], 0x80
add eax, 0x200
sub edx, 1
jne 0x10045a91
inc esi
cmp esi, ebp
jb 0x10045a72
inc ebx
cmp ebx, 2
jb 0x10045a62
inc ecx
cmp ecx, 2
jb 0x10045a60
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x10045abb
mov eax, dword [esp + 0x10]
xor ecx, ecx
test eax, eax
sete cl
mov edx, eax
imul edx, edx, 0x4c8
shl ecx, 5
mov dword [esp + 0x1c], ecx
add edx, 0x1007d814
mov dword [esp + 0x14], 0
nop
mov bl, byte [edx]
movzx ebp, bl
mov ecx, 0xc
sub ecx, ebp
mov edi, 1
shl edi, cl
xor esi, esi
test edi, edi
jbe 0x10045b41
mov ecx, 0xc
sub ecx, ebp
mov ebp, dword [edx - 4]
shl ebp, cl
mov ecx, eax
shl ecx, 0xc
mov dword [esp + 0x38], ecx
jmp 0x10045b14
mov ecx, dword [esp + 0x38]
mov eax, ebp
or eax, esi
add eax, ecx
mov cx, word [edx + 4]
add eax, eax
add eax, eax
mov byte [eax + 0x10096998], bl
mov word [eax + 0x10096999], cx
mov cl, byte [edx + 6]
inc esi
mov byte [eax + 0x1009699b], cl
cmp esi, edi
jb 0x10045b10
mov eax, dword [esp + 0x10]
movzx esi, byte [edx + 4]
mov ecx, dword [esp + 0x1c]
add eax, eax
add esi, eax
movsx eax, byte [edx + 6]
shl esi, 6
add esi, ecx
add eax, esi
movzx esi, byte [edx + 5]
shl eax, 6
add eax, esi
mov esi, dword [edx - 4]
add eax, eax
add eax, eax
add eax, eax
add esi, esi
inc bl
cmp dword [esp + 0x10], 0
mov dword [eax + 0x1009e998], esi
mov esi, dword [esp + 0x14]
mov byte [eax + 0x1009e99c], bl
jne 0x10045bcb
movzx eax, byte [esi + 0x1007d818]
movsx edi, byte [esi + 0x1007d81a]
shl eax, 6
sub eax, edi
add eax, ecx
movzx ecx, byte [esi + 0x1007d819]
shl eax, 6
add eax, ecx
mov ecx, dword [esi + 0x1007d810]
add eax, eax
add ecx, ecx
add eax, eax
add eax, eax
or ecx, 1
mov dword [eax + 0x1009e998], ecx
mov cl, byte [esi + 0x1007d814]
inc cl
mov byte [eax + 0x1009e99c], cl
mov eax, dword [esp + 0x10]
add esi, 0xc
add edx, 0xc
mov dword [esp + 0x14], esi
cmp esi, 0x4c8
jb 0x10045ae0
inc eax
mov dword [esp + 0x10], eax
cmp eax, 2
jb 0x10045ab7
xor ecx, ecx
mov dword [esp + 0x10], ecx
lea esp, [esp]
xor edx, edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], edx
mov edi, edi
lea eax, [edx + 0x3f]
xor ebp, ebp
test eax, eax
jbe 0x10045e06
mov ebx, 0x20
shl ebx, cl
mov dword [esp + 0x40], ebx
jmp 0x10045c30
mov esi, 1
cmp ebx, esi
jbe 0x10045dcd
lea edx, [edx + ecx*2]
shl edx, 6
movzx ebx, byte [edx + ebp + 0x1007e1a0]
mov edi, esi
lea eax, [edx + 0x1007e2a0]
sub edi, ebx
sub eax, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], eax
jmp 0x10045c74
mov ebx, dword [esp + 0x28]
cmp esi, ebx
ja 0x10045c88
movzx eax, byte [edx + esi + 0x1007e2a0]
cmp ebp, eax
jbe 0x10045daf
movzx eax, byte [edx + esi + 0x1007e2a0]
xor ebx, ebx
test ecx, ecx
sete bl
mov ecx, ebp
sub ecx, eax
dec ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], ecx
shl ebx, 5
mov dword [esp + 0x1c], ebx
cmp edi, dword [esp + 0x28]
ja 0x10045cd2
mov eax, dword [esp + 0x3c]
movzx eax, byte [eax + esi]
cmp ebp, eax
ja 0x10045cd2
mov ecx, ebp
mov edi, 6
mov dword [esp + 0x2c], 8
mov dword [esp + 0x30], ecx
jmp 0x10045d03
movzx eax, byte [edx + esi + 0x1007e2a0]
cmp ecx, eax
ja 0x10045eb1
movzx eax, byte [edx + ecx + 0x1007e1a0]
cmp esi, eax
ja 0x10045eb1
mov edi, 0xe
mov dword [esp + 0x2c], 9
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add eax, edx
add eax, ebx
shl eax, 6
add eax, ecx
add edx, ebx
add eax, eax
add eax, eax
movzx ecx, byte [eax + eax + 0x1009e99c]
add eax, eax
add edx, esi
shl edx, 6
add edx, ebp
mov ebx, edi
shl ebx, cl
add edx, edx
add edx, edx
add edx, edx
or ebx, dword [eax + 0x1009e998]
mov dword [edx + 0x1009e998], ebx
movzx ecx, byte [eax + 0x1009e99c]
mov bl, byte [esp + 0x2c]
add cl, bl
cmp dword [esp + 0x10], 0
mov byte [edx + 0x1009e99c], cl
jne 0x10045dab
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add eax, edx
add eax, ecx
shl eax, 6
add eax, dword [esp + 0x30]
sub edx, esi
add eax, eax
add edx, ecx
add eax, eax
movzx ecx, byte [eax + eax + 0x1009e99c]
add eax, eax
shl edx, 6
shl edi, cl
add edx, ebp
add edx, edx
add edx, edx
or edi, dword [eax + 0x1009e998]
add edx, edx
or edi, 1
mov dword [edx + 0x1009e998], edi
movzx ecx, byte [eax + 0x1009e99c]
add cl, bl
mov byte [edx + 0x1009e99c], cl
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
inc esi
inc edi
mov dword [esp + 0x38], edi
cmp esi, ebx
jb 0x10045c70
mov edx, dword [esp + 0x20]
test ecx, ecx
jne 0x10045dfa
mov eax, dword [esp + 0x24]
add eax, ebp
mov esi, edx
shl esi, 6
add eax, eax
or esi, ebp
add eax, eax
add eax, eax
shl esi, 0xe
or esi, 0x1e03fc1
mov dword [eax + 0x1009e998], esi
mov byte [eax + 0x1009e99c], 0x1e
inc ebp
lea eax, [edx + 0x3f]
cmp ebp, eax
jb 0x10045c30
mov eax, dword [esp + 0x14]
add dword [esp + 0x24], 0x1000
add eax, 0x40
inc edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], eax
cmp eax, 0x80
jb 0x10045c10
inc ecx
mov dword [esp + 0x10], ecx
cmp ecx, 2
jb 0x10045c00
xor ecx, ecx
mov dword [0x100e4a60], ecx
mov byte [0x100e4a64], cl
jmp 0x10045e50
mov esi, 1
shl esi, cl
mov eax, 1
lea ebp, [esi + esi]
mov edx, esi
sub eax, ebp
neg edx
cmp eax, edx
jg 0x10045e85
mov bl, cl
inc bl
lea edi, [eax + ebp - 1]
mov dword [eax*8 + 0x100e4a60], edi
mov byte [eax*8 + 0x100e4a64], bl
inc eax
inc edi
cmp eax, edx
jle 0x10045e71
dec ebp
cmp esi, ebp
mov eax, esi
jg 0x10045ea3
mov dl, cl
inc dl
mov dword [eax*8 + 0x100e4a60], eax
mov byte [eax*8 + 0x100e4a64], dl
inc eax
cmp eax, ebp
jle 0x10045e90
inc ecx
cmp ecx, 0xe
jb 0x10045e50
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret
cmp dword [esp + 0x10], 0
jne 0x10045daf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
add eax, ebx
add eax, esi
shl eax, 6
add eax, ebp
add eax, eax
shl ecx, 6
add eax, eax
add eax, eax
or ecx, ebp
shl ecx, 0xd
mov edi, esi
and edi, 0xfff
or edi, ecx
add edi, edi
mov byte [eax + 0x1009e99c], 0x1e
or edi, 0x1e02001
mov dword [eax + 0x1009e998], edi
mov eax, dword [esp + 0x14]
sub eax, esi
add eax, ebx
shl eax, 6
add eax, ebp
mov edi, esi
neg edi
and edi, 0xfff
add eax, eax
or edi, ecx
add eax, eax
add eax, eax
add edi, edi
or edi, 0x1e02001
mov dword [eax + 0x1009e998], edi
mov byte [eax + 0x1009e99c], 0x1e
jmp 0x10045daf