Function at 0x10053580
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x14
mov eax, dword [edi]
mov ecx, dword [eax]
push ebx
movzx ebx, byte [edi + 0x18]
not ebx
and ebx, 1
push ebp
mov ebp, dword [esp + 0x20]
inc dword [ebp + 0x48]
mov eax, dword [ebp + 0x48]
mov edx, dword [edi + 4]
mov dword [esp + 8], ecx
add ecx, ebx
add ecx, dword [esp + 0x2c]
cmp dword [esp + 0x30], 0
push esi
mov esi, dword [ebp + 8]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
je 0x100535d0
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0xc]
sub eax, ebx
mov dword [esp + 0x24], eax
jmp 0x100535de
lea edx, [eax + 1]
add eax, ecx
mov dword [ebp + 0x48], eax
mov dword [esp + 0x24], edx
mov eax, edx
mov edx, dword [edi]
push eax
push ebp
mov cl, 1
call fcn.1003e1f0
add esp, 8
test ebx, ebx
je 0x10053609
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x24]
mov edx, dword [edi + 8]
add eax, ecx
push eax
push edx
push 0x49
call fcn.1003a180
add esp, 0xc
cmp dword [esp + 0x34], 0
jne 0x1005362f
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x30]
add ecx, edx
add ecx, ebx
push ecx
push ebp
call fcn.10039a90
add esp, 0xc
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
cmp dword [ecx + 0x54], eax
mov dword [esp + 0x34], eax
jg 0x1005364f
push esi
call fcn.100318e0
add esp, 4
test eax, eax
jne 0x1005368c
mov eax, dword [esp + 0x34]
inc dword [esi + 0x20]
mov ecx, dword [esp + 0x24]
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x10]
add ecx, edx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x14]
sub ecx, edx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x18]
mov byte [eax], 0x31
mov byte [eax + 3], 0
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], 0
mov byte [eax + 1], 0
jmp 0x10053690
mov edx, dword [esp + 0x10]
test edx, edx
jle 0x1005383d
mov eax, dword [ebp + 0x48]
mov ecx, dword [edi + 4]
add ecx, eax
lea edx, [eax + 1]
mov dword [ebp + 0x48], ecx
mov ecx, dword [esp + 0xc]
mov eax, ecx
sub eax, dword [edi + 4]
mov dword [esp + 0x14], edx
add eax, ebx
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x100536c8
mov edx, dword [esp + 0x24]
add edx, ecx
push edx
push 0x2e
jmp 0x100536ce
mov eax, dword [edi + 8]
push eax
push 0x3b
call fcn.1003a1e0
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x2c]
add esp, 8
push ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
push edx
push eax
push 0x2a
call fcn.100370c0
mov eax, dword [edi + 0x14]
add esp, 0x10
test eax, eax
jge 0x100536fd
mov eax, dword [esi + 0x20]
dec eax
mov ecx, dword [esi]
cmp byte [ecx + 0x41], 0
je 0x10053710
mov eax, 0x100cd250
mov dword [esp + 0x34], eax
jmp 0x1005371f
lea edx, [eax + eax*4]
mov eax, dword [esi + 4]
lea ecx, [eax + edx*4]
mov dword [esp + 0x34], ecx
mov eax, ecx
mov edx, dword [ebp]
cmp byte [edx + 0x41], 0
jne 0x100538f0
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [eax + 0x10]
add ecx, edx
mov dword [eax + 8], ecx
movzx eax, word [ebx + 6]
mov ecx, dword [ebx + 0x10]
push eax
push 0
push ecx
call fcn.10004b00
mov ecx, dword [esi + 4]
mov edx, dword [esi]
add esp, 0xc
test ecx, ecx
je 0x10053785
cmp byte [edx + 0x41], 0
jne 0x10053785
mov eax, dword [esi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea ecx, [ecx + eax*4]
movsx eax, byte [ecx + 1]
mov dword [esp + 0x30], ecx
mov ecx, dword [ecx + 0x10]
call fcn.1003a090
mov eax, dword [esp + 0x30]
mov dword [eax + 0x10], ebx
mov byte [eax + 1], 0xfa
jmp 0x10053791
mov ecx, ebx
mov eax, 0xfffffffa
call fcn.1003a090
movzx ecx, word [ebx + 8]
mov ebx, dword [esp + 0x10]
mov eax, dword [edi]
dec ecx
push ebp
call fcn.100534f0
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x10], eax
mov ebx, dword [esi + 0x20]
add esp, 4
lea eax, [ebx + 1]
push eax
push 0
push eax
push 0x2b
call fcn.100370c0
mov eax, esi
call fcn.10037070
mov dword [edi + 0x10], eax
inc dword [ebp + 0x48]
mov edx, dword [edi + 0x10]
mov eax, dword [ebp + 0x48]
push edx
push eax
push 0x11
mov dword [edi + 0xc], eax
call fcn.1003a180
mov eax, dword [edi + 8]
add esp, 0x1c
push eax
push 0x77
call fcn.1003a1e0
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
add esp, 8
cmp eax, ecx
jbe 0x10053802
mov edx, dword [esi + 4]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov edx, dword [edi + 4]
mov eax, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x2c]
push ebp
call fcn.10039a90
mov eax, dword [esi + 0x20]
add esp, 0xc
cmp eax, ebx
jbe 0x10053833
mov edx, dword [esi + 4]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov dl, byte [edi + 0x18]
mov ecx, dword [esp + 0x18]
and dl, 1
movzx eax, dl
mov edx, dword [edi + 8]
neg eax
push ecx
sbb eax, eax
add eax, 0x6e
push edx
push eax
call fcn.1003a180
mov ecx, dword [esp + 0x34]
mov eax, dword [ecx + 8]
add esp, 0xc
test eax, eax
je 0x100538f0
mov ecx, dword [ecx + 0xc]
lea ebp, [ecx + 1]
test ecx, ecx
jne 0x1005387a
mov ebp, eax
push ebp
push 0x8b
call fcn.1003a1e0
push 0xffffffffffffffff
push ebp
push 0x25
mov ebx, eax
call fcn.1003a180
add esp, 0x14
push 0x10
call fcn.1003a230
mov ebp, eax
mov eax, dword [esi + 0x20]
add esp, 4
cmp eax, ebx
jbe 0x100538b1
mov edx, dword [esi + 4]
lea ecx, [ebx + ebx*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
mov edx, dword [edi + 8]
push edx
push 0x69
call fcn.1003a1e0
mov eax, dword [edi + 8]
push eax
push 0x5f
call fcn.1003a1e0
mov eax, dword [esi + 0x20]
add esp, 0x10
cmp eax, ebp
jbe 0x100538e6
mov edx, dword [esi + 4]
lea ecx, [ebp + ebp*4]
mov dword [edx + ecx*4 + 8], eax
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
dec eax
mov dword [ecx + 0x58], eax
pop esi
pop ebp
pop ebx
add esp, 0x14
ret