Function at 0x10037160
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
push edi
mov esi, edx
mov edi, ecx
mov dword [esp + 0x1c], edi
test esi, esi
je 0x100373bb
push 0
push 0x48
call fcn.10005020
mov ebx, eax
add esp, 8
mov dword [esp + 0x2c], ebx
test ebx, ebx
je 0x100373bb
push dword [ebp + 8]
mov edx, dword [esi]
mov ecx, edi
call fcn.10036be0
add esp, 4
mov dword [ebx], eax
mov edx, dword [esi + 0x20]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036db0
add esp, 4
mov dword [ebx + 0x20], eax
mov edx, dword [esi + 0x24]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036bc0
add esp, 4
mov dword [ebx + 0x24], eax
mov edx, dword [esi + 0x28]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036be0
add esp, 4
mov dword [ebx + 0x28], eax
mov edx, dword [esi + 0x2c]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036bc0
add esp, 4
mov dword [ebx + 0x2c], eax
mov edx, dword [esi + 0x30]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036be0
add esp, 4
mov dword [ebx + 0x30], eax
mov al, byte [esi + 4]
mov ecx, edi
mov byte [ebx + 4], al
mov edx, dword [esi + 0x34]
push dword [ebp + 8]
call fcn.10037160
add esp, 4
mov dword [ebx + 0x34], eax
test eax, eax
je 0x10037226
mov dword [eax + 0x38], ebx
push dword [ebp + 8]
mov dword [ebx + 0x38], 0
mov ecx, edi
mov edx, dword [esi + 0x3c]
call fcn.10036bc0
add esp, 4
mov dword [ebx + 0x3c], eax
mov edx, dword [esi + 0x40]
mov ecx, edi
push dword [ebp + 8]
call fcn.10036bc0
mov dword [ebx + 0x40], eax
mov ecx, 0xfff7
mov dword [ebx + 8], 0
add esp, 4
mov dword [ebx + 0xc], 0
mov ax, word [esi + 6]
and ax, cx
mov dword [ebx + 0x10], 0xffffffff
mov word [ebx + 6], ax
xor ecx, ecx
mov dword [ebx + 0x14], 0xffffffff
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0x1c], eax
mov esi, dword [esi + 0x44]
mov dword [esp + 0x18], esi
test esi, esi
je 0x100373af
mov eax, dword [esi]
shl eax, 4
lea ecx, [eax + 8]
cdq
add eax, 8
mov dword [esp + 0x14], ecx
mov ecx, edi
adc edx, 0
push edx
push eax
call fcn.10005020
mov ecx, eax
add esp, 8
mov dword [esp + 0x20], ecx
test ecx, ecx
je 0x100373af
push dword [esp + 0x14]
push 0
push ecx
call fcn.100bd8d0
mov ecx, dword [esp + 0x2c]
add esp, 0xc
test ecx, ecx
je 0x100373af
mov eax, dword [esi]
mov dword [ecx], eax
cmp dword [esi], 0
mov dword [esp + 0x10], 0
jle 0x100373af
mov eax, dword [esp + 0x18]
lea ebx, [esi + 8]
sub eax, ecx
mov dword [esp + 0x14], ebx
lea esi, [ecx + 0x10]
mov dword [esp + 0x28], eax
nop dword [eax]
mov edx, dword [eax + esi]
mov ecx, edi
push 0
call fcn.10037160
add esp, 4
mov dword [esi], eax
mov edx, dword [ebx + 4]
mov ecx, edi
push 0
call fcn.10036be0
mov dword [esi - 4], eax
add esp, 4
mov edi, dword [ebx]
test edi, edi
jne 0x1003733d
xor ebx, ebx
jmp 0x10037379
cmp byte [edi], 0
mov eax, edi
je 0x1003734a
inc eax
cmp byte [eax], 0
jne 0x10037344
mov ecx, dword [esp + 0x1c]
sub eax, edi
and eax, 0x3fffffff
inc eax
push 0
push eax
mov dword [esp + 0x2c], eax
call fcn.10005020
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10037379
push dword [esp + 0x24]
push edi
push ebx
call fcn.100bda90
add esp, 0xc
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
inc eax
mov edi, dword [esp + 0x1c]
mov dword [esi - 8], ebx
add esi, 0x10
mov ebx, dword [esp + 0x14]
add ebx, 0x10
mov dword [esp + 0x10], eax
cmp eax, dword [ecx]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
jl 0x10037310
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [ebx + 0x44], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret