Function at 0x503650
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xc
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x89]
mov edx, dword [esi + 0x91]
mov ecx, dword [esi + 0x8d]
mov ebx, dword [esi + 0x85]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x79]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x20]
test eax, eax
mov dword [esp + 0x14], ecx
je 0x503700
mov ecx, dword [edx + 0x1c]
test byte [ecx + 0x48], 4
je 0x5036d2
test byte [esi + 0x11d], 0x40
je 0x503700
xor ecx, ecx
mov ebp, dword [esp + 0x10]
cmp byte [eax + 4], cl
setne cl
add ebx, ecx
xor ecx, ecx
cmp byte [eax + 5], cl
setne cl
add ebp, ecx
xor ecx, ecx
cmp byte [eax + 6], cl
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
setne cl
add ebp, ecx
xor ecx, ecx
cmp byte [eax + 7], cl
mov dword [esp + 0x14], ebp
setne cl
jmp 0x5036fc
mov ebp, dword [esp + 0x10]
xor ecx, ecx
mov cl, byte [eax + 4]
mov edi, dword [esp + 0x14]
add ebx, ecx
xor ecx, ecx
mov cl, byte [eax + 5]
add ebp, ecx
xor ecx, ecx
mov cl, byte [eax + 6]
mov dword [esp + 0x10], ebp
add edi, ecx
xor ecx, ecx
mov cl, byte [eax + 7]
mov dword [esp + 0x14], edi
add dword [esp + 0x18], ecx
mov eax, dword [esp + 0x2c]
test eax, eax
mov al, byte [esi + 0x11b]
je 0x503779
mov edi, dword [esp + 0x30]
test al, 1
mov eax, dword [esi + 0x7d]
je 0x50374c
mov ebp, dword [esp + 0x28]
lea ecx, [eax + edi]
push ecx
mov ecx, dword [esi + 0x81]
push ecx
mov ecx, dword [ebp]
sub ecx, eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [eax]
push ecx
mov ecx, edx
call fcn.004dd6a0
mov edx, dword [esi + 0x7d]
mov dword [esi + 0x43], eax
mov eax, dword [ebp]
sub eax, edx
jmp 0x5037ef
mov ecx, dword [esi + 0x81]
mov ebp, dword [esp + 0x28]
add eax, edi
push eax
mov eax, dword [ebp]
push ecx
mov ecx, dword [esp + 0x2c]
push eax
mov eax, dword [ecx]
mov ecx, edx
push eax
call fcn.004dd6a0
mov ecx, dword [esi + 0x7d]
mov dword [esi + 0x43], eax
mov eax, dword [ebp]
add eax, ecx
jmp 0x5037ef
test al, 1
mov eax, dword [esi + 0x7d]
je 0x5037b7
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x24]
lea ecx, [eax + edi]
push ecx
mov ecx, dword [esi + 0x81]
push ecx
mov ecx, dword [esp + 0x30]
mov ecx, dword [ecx]
sub ecx, eax
mov eax, dword [ebp]
push ecx
push eax
mov ecx, edx
call fcn.004dd6a0
mov ecx, dword [esi + 0x81]
mov dword [esi + 0x43], eax
mov eax, dword [ebp]
add eax, ecx
jmp 0x5037ef
mov edi, dword [esp + 0x30]
mov ecx, dword [esi + 0x81]
lea ebp, [eax + edi]
push ebp
mov ebp, dword [esp + 0x2c]
push ecx
mov ebp, dword [ebp]
sub ebp, eax
push ebp
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp]
sub eax, ecx
mov ecx, edx
push eax
call fcn.004dd6a0
mov ecx, dword [esi + 0x81]
mov dword [esi + 0x43], eax
mov eax, dword [ebp]
sub eax, ecx
mov edx, dword [esp + 0x10]
mov dword [ebp], eax
mov ecx, dword [esi + 0x43]
mov ax, word [esp + 0x14]
add edi, edx
mov dx, word [esp + 0x18]
mov word [ecx + 0x24], bx
mov word [ecx + 0x26], di
mov word [ecx + 0x28], ax
mov word [ecx + 0x2a], dx
call fcn.004db940
mov ecx, dword [esi + 0x9d]
test ecx, ecx
jle 0x50386b
mov eax, dword [esi + 0x43]
mov ebx, dword [esi + 0xa1]
push ecx
movsx edx, word [eax + 0x2a]
mov edi, dword [eax + 0x1c]
sub edi, edx
movsx edx, word [eax + 0x28]
sub edi, edx
movsx edx, word [eax + 0x24]
push edi
mov edi, dword [eax + 0x20]
sub edi, edx
mov edx, dword [eax + 0x18]
sub edi, ebx
mov ebx, dword [esp + 0x28]
add edi, edx
mov edx, dword [eax + 0x14]
sub edi, ecx
movsx ecx, word [eax + 0x28]
add ecx, edx
push edi
push ecx
mov ecx, ebx
call fcn.004dd6a0
mov dword [esi + 0x47], eax
jmp 0x50386f
mov ebx, dword [esp + 0x20]
mov eax, dword [esi + 0x63]
test eax, eax
jne 0x503a3e
mov ecx, dword [esi + 0x57]
test ecx, ecx
je 0x503a3e
test byte [esi + 0x11b], 2
mov eax, dword [esi + 0x43]
je 0x503984
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x30], edx
mov edi, dword [eax + 0x20]
movsx edx, word [eax + 0x24]
sub edi, edx
mov edx, dword [eax + 0x18]
add edi, edx
mov dword [esp + 0x28], edi
mov edi, dword [ecx]
test edi, edi
je 0x503908
mov al, byte [edi + 0x11b]
test al, 1
je 0x503908
test al, 8
jne 0x5038fb
test byte [0x5cc54d], 4
jne 0x5038db
mov al, byte [edi + 0x11d]
not al
test al, 0x10
je 0x5038fb
mov cl, byte [esi + 0x11b]
push 0
shr ecx, 1
and ecx, 1
lea edx, [esp + 0x2c]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
push ebx
mov ecx, edi
call fcn.00503650
mov ecx, edi
call fcn.004a8c30
mov edi, eax
test edi, edi
jne 0x5038b8
mov eax, dword [esi + 0x43]
movsx ecx, word [eax + 0x26]
mov edx, dword [eax + 0x18]
add ecx, edx
mov edx, dword [esi + 0x57]
mov dword [esp + 0x24], ecx
mov edi, dword [edx + 4]
test edi, edi
je 0x503a3e
mov al, byte [edi + 0x11b]
test al, 1
jne 0x503a3e
test al, 8
jne 0x50396d
test byte [0x5cc54d], 4
jne 0x50394d
mov al, byte [edi + 0x11d]
not al
test al, 0x10
je 0x50396d
mov cl, byte [esi + 0x11b]
push 0
shr ecx, 1
and ecx, 1
lea edx, [esp + 0x28]
push ecx
lea eax, [esp + 0x38]
push edx
push eax
push ebx
mov ecx, edi
call fcn.00503650
mov ecx, edi
call fcn.004a8c00
mov edi, eax
test edi, edi
jne 0x503926
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x14
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
mov ebp, dword [eax + 0x18]
sub edi, edx
add edi, ebp
mov dword [esp + 0x30], edi
mov edi, dword [eax + 0x14]
movsx edx, word [eax + 0x28]
add edx, edi
mov dword [esp + 0x28], edx
mov edi, dword [ecx]
test edi, edi
je 0x5039e4
mov al, byte [edi + 0x11b]
test al, 1
je 0x5039e4
test al, 8
jne 0x5039d7
mov al, byte [esi + 0x11b]
push 0
shr eax, 1
and eax, 1
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x30]
push ecx
push edx
push ebx
mov ecx, edi
call fcn.00503650
mov ecx, edi
call fcn.004a8c30
mov edi, eax
test edi, edi
jne 0x5039a9
mov eax, dword [esi + 0x43]
movsx ecx, word [eax + 0x2a]
mov edx, dword [eax + 0x1c]
sub edx, ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [esi + 0x57]
add edx, ecx
mov dword [esp + 0x24], edx
mov edi, dword [eax + 4]
test edi, edi
je 0x503a3e
mov al, byte [edi + 0x11b]
test al, 1
jne 0x503a3e
test al, 8
jne 0x503a31
mov cl, byte [esi + 0x11b]
push 0
shr ecx, 1
and ecx, 1
lea edx, [esp + 0x34]
push ecx
lea eax, [esp + 0x2c]
push edx
push eax
push ebx
mov ecx, edi
call fcn.00503650
mov ecx, edi
call fcn.004a8c00
mov edi, eax
test edi, edi
jne 0x503a03
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret 0x14