Function at 0x5031e0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, dword [esp + 0x18]
push edi
mov eax, dword [esi + 0x8d]
mov ecx, dword [esi + 0x91]
mov edi, dword [esi + 0x85]
mov ebp, dword [esi + 0x89]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x79]
test eax, eax
mov dword [esp + 0x14], ecx
je 0x503284
mov edx, dword [ebx + 0x1c]
test byte [edx + 0x48], 4
je 0x50325e
test byte [esi + 0x11d], 0x40
je 0x503284
mov dl, byte [eax + 4]
xor ecx, ecx
test dl, dl
setne cl
add edi, ecx
mov cl, byte [eax + 5]
xor edx, edx
test cl, cl
setne dl
add ebp, edx
mov dl, byte [eax + 6]
xor ecx, ecx
test dl, dl
mov edx, dword [esp + 0x10]
setne cl
add edx, ecx
mov cl, byte [eax + 7]
mov dword [esp + 0x10], edx
xor edx, edx
test cl, cl
setne dl
jmp 0x503280
xor ecx, ecx
xor edx, edx
mov cl, byte [eax + 4]
mov dl, byte [eax + 5]
add edi, ecx
xor ecx, ecx
mov cl, byte [eax + 6]
add ebp, edx
mov edx, dword [esp + 0x10]
add edx, ecx
mov dword [esp + 0x10], edx
xor edx, edx
mov dl, byte [eax + 7]
add dword [esp + 0x14], edx
mov eax, dword [esp + 0x28]
test eax, eax
mov al, byte [esi + 0x11b]
je 0x5032f5
test al, 1
je 0x5032c7
mov eax, dword [esi + 0x7d]
mov ecx, dword [esi + 0x81]
mov edx, dword [esp + 0x24]
push eax
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [edx]
push ecx
push eax
mov ecx, ebx
call fcn.004dd6a0
mov ecx, dword [esi + 0x7d]
mov dword [esi + 0x43], eax
mov eax, dword [esp + 0x24]
jmp 0x50335c
mov edx, dword [esi + 0x7d]
mov eax, dword [esi + 0x81]
mov ecx, dword [esp + 0x24]
push edx
push eax
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
mov ecx, dword [eax]
push edx
push ecx
mov ecx, ebx
call fcn.004dd6a0
mov edx, dword [esi + 0x7d]
mov dword [esi + 0x43], eax
mov eax, dword [esp + 0x24]
add dword [eax], edx
jmp 0x503362
test al, 1
mov eax, dword [esi + 0x7d]
je 0x50332e
mov ecx, dword [esi + 0x81]
mov edx, dword [esp + 0x24]
push eax
push ecx
mov ecx, dword [edx]
mov edx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [edx]
push ecx
push eax
mov ecx, ebx
call fcn.004dd6a0
mov ecx, dword [esi + 0x81]
mov dword [esi + 0x43], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
add edx, ecx
jmp 0x503360
mov edx, dword [esp + 0x24]
mov ecx, dword [esi + 0x81]
push eax
push ecx
mov edx, dword [edx]
sub edx, eax
mov eax, dword [esp + 0x28]
push edx
mov edx, dword [eax]
sub edx, ecx
mov ecx, ebx
push edx
call fcn.004dd6a0
mov ecx, dword [esi + 0x81]
mov dword [esi + 0x43], eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
sub edx, ecx
mov dword [eax], edx
mov ecx, dword [esi + 0x43]
mov dx, word [esp + 0x10]
mov ax, word [esp + 0x14]
mov word [ecx + 0x24], di
mov word [ecx + 0x26], bp
mov word [ecx + 0x28], dx
mov word [ecx + 0x2a], ax
call fcn.004db940
mov ecx, dword [esi + 0x9d]
test ecx, ecx
jle 0x5034a4
mov eax, dword [esi + 0x43]
push ecx
movsx edx, word [eax + 0x2a]
mov edi, dword [eax + 0x1c]
mov ebp, dword [eax + 0x18]
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 [esi + 0xa1]
sub edi, edx
add edi, ebp
mov ebp, dword [eax + 0x14]
sub edi, ecx
movsx ecx, word [eax + 0x28]
add ecx, ebp
push edi
push ecx
mov ecx, ebx
call fcn.004dd6a0
mov ecx, eax
mov eax, dword [esi + 0x95]
test eax, eax
mov dword [esi + 0x47], ecx
jle 0x503463
cdq
sub eax, edx
mov ebp, dword [esi + 0x99]
movsx edx, word [ecx + 0x2a]
sar eax, 1
push eax
mov eax, dword [ecx + 0x1c]
sub eax, edx
movsx edx, word [ecx + 0x28]
sub eax, edx
mov edx, dword [ecx + 0x20]
push eax
movsx eax, word [ecx + 0x24]
sub edx, eax
mov eax, dword [ecx + 0x18]
add edx, eax
movsx eax, word [ecx + 0x28]
add edx, ebp
push edx
mov edx, dword [ecx + 0x14]
add eax, edx
mov ecx, ebx
push eax
call fcn.004dd6a0
mov ecx, dword [esi + 0x47]
mov dword [esi + 0x4b], eax
mov eax, dword [esi + 0x95]
mov edi, dword [ecx + 0x1c]
cdq
sub eax, edx
movsx edx, word [ecx + 0x2a]
sub edi, edx
movsx edx, word [ecx + 0x28]
sar eax, 1
sub edi, edx
push eax
movsx edx, word [ecx + 0x26]
push edi
mov edi, dword [ecx + 0x18]
add edx, edi
sub edx, eax
movsx eax, word [ecx + 0x28]
push edx
mov edx, dword [ecx + 0x14]
add eax, edx
mov ecx, ebx
push eax
call fcn.004dd6a0
mov dword [esi + 0x4f], eax
mov ecx, dword [esi + 0x99]
test ecx, ecx
jle 0x5034a4
mov eax, dword [esi + 0x47]
push ecx
movsx ecx, word [eax + 0x2a]
mov edx, dword [eax + 0x1c]
mov edi, dword [eax + 0x18]
sub edx, ecx
movsx ecx, word [eax + 0x28]
sub edx, ecx
mov ecx, dword [eax + 0x20]
push edx
movsx edx, word [eax + 0x24]
sub ecx, edx
movsx edx, word [eax + 0x28]
add ecx, edi
push ecx
mov ecx, dword [eax + 0x14]
add edx, ecx
mov ecx, ebx
push edx
call fcn.004dd6a0
mov dword [esi + 0x53], eax
mov eax, dword [esi + 0x63]
test eax, eax
jne 0x503641
mov ecx, dword [esi + 0x57]
test ecx, ecx
je 0x503641
test byte [esi + 0x11b], 2
mov eax, dword [esi + 0x43]
je 0x50358b
movsx edx, word [eax + 0x28]
add edx, dword [eax + 0x14]
mov dword [esp + 0x24], 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 + 0x20], edi
mov edi, dword [ecx]
test edi, edi
je 0x503526
mov al, byte [edi + 0x11b]
test al, 1
je 0x503526
test al, 8
jne 0x503519
mov al, byte [esi + 0x11b]
lea ecx, [esp + 0x20]
shr eax, 1
and eax, 1
lea edx, [esp + 0x24]
push eax
push ecx
push edx
push ebx
mov ecx, edi
call fcn.005031e0
mov ecx, edi
call fcn.004a8c30
mov edi, eax
test edi, edi
jne 0x5034ed
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 + 0x1c], ecx
mov edi, dword [edx + 4]
test edi, edi
je 0x503641
mov al, byte [edi + 0x11b]
test al, 1
jne 0x503641
test al, 8
jne 0x503574
mov al, byte [esi + 0x11b]
lea ecx, [esp + 0x1c]
shr eax, 1
and eax, 1
lea edx, [esp + 0x24]
push eax
push ecx
push edx
push ebx
mov ecx, edi
call fcn.005031e0
mov ecx, edi
call fcn.004a8c00
mov edi, eax
test edi, edi
jne 0x503544
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10
movsx edx, word [eax + 0x24]
mov edi, dword [eax + 0x20]
mov ebp, dword [eax + 0x18]
sub edi, edx
add edi, ebp
mov dword [esp + 0x24], edi
mov edi, dword [eax + 0x14]
movsx edx, word [eax + 0x28]
add edx, edi
mov dword [esp + 0x20], edx
mov edi, dword [ecx]
test edi, edi
je 0x5035e9
mov al, byte [edi + 0x11b]
test al, 1
je 0x5035e9
test al, 8
jne 0x5035dc
mov al, byte [esi + 0x11b]
lea ecx, [esp + 0x24]
shr eax, 1
and eax, 1
lea edx, [esp + 0x20]
push eax
push ecx
push edx
push ebx
mov ecx, edi
call fcn.005031e0
mov ecx, edi
call fcn.004a8c30
mov edi, eax
test edi, edi
jne 0x5035b0
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 + 0x1c], edx
mov edi, dword [eax + 4]
test edi, edi
je 0x503641
mov al, byte [edi + 0x11b]
test al, 1
jne 0x503641
test al, 8
jne 0x503634
mov cl, byte [esi + 0x11b]
lea edx, [esp + 0x24]
shr ecx, 1
and ecx, 1
lea eax, [esp + 0x1c]
push ecx
push edx
push eax
push ebx
mov ecx, edi
call fcn.005031e0
mov ecx, edi
call fcn.004a8c00
mov edi, eax
test edi, edi
jne 0x503608
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 0x10