Function at 0x5526d0
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, dword [esp + 0xc]
sub esp, 0x48
test eax, eax
push ebp
push esi
push edi
je 0x552717
mov eax, dword [eax]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], eax
mov ax, word [edx]
mov cx, word [esp + 0x14]
cmp ax, cx
jle 0x5526fd
mov cx, ax
mov word [esp + 0x14], cx
mov eax, dword [esp + 0x14]
mov si, word [edx + 2]
shr eax, 0x10
cmp si, ax
jge 0x55272d
mov ax, si
mov word [esp + 0x16], ax
jmp 0x55272d
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx]
mov eax, edx
mov dword [esp + 0x14], edx
mov cx, dx
mov edx, dword [esp + 0x58]
shr eax, 0x10
mov ebp, dword [esp + 0x5c]
mov si, word [ebp]
cmp si, cx
jle 0x552742
mov cx, si
mov word [esp + 0x14], cx
mov si, word [ebp + 2]
cmp si, ax
jge 0x552753
mov ax, si
mov word [esp + 0x16], ax
movsx ecx, cx
movsx edi, ax
sub edi, ecx
test edi, edi
jle 0x552a27
push ebx
push edx
lea eax, [edx + 4]
lea ebx, [esp + 0x1c]
lea esi, [esp + 0x28]
call fcn.005523a0
mov eax, dword [esp + 0x60]
push eax
add eax, 0x10
lea esi, [esp + 0x38]
call fcn.005523a0
push ebp
lea eax, [ebp + 4]
lea esi, [esp + 0x4c]
call fcn.005523a0
push ebp
lea eax, [ebp + 0x10]
lea esi, [esp + 0x5c]
call fcn.005523a0
push edi
lea eax, [esp + 0x38]
mov ecx, esi
call fcn.00552490
add esp, 0x14
cmp eax, 0xffffffff
je 0x552a26
test eax, eax
jne 0x552808
push edi
lea eax, [esp + 0x44]
lea ecx, [esp + 0x34]
call fcn.00552490
add esp, 4
cmp eax, 0xffffffff
je 0x552a26
test eax, eax
jne 0x552808
push edi
lea eax, [esp + 0x44]
lea ecx, [esp + 0x28]
call fcn.00552490
add esp, 4
test eax, eax
jg 0x552808
mov esi, eax
push edi
lea eax, [esp + 0x34]
lea ecx, [esp + 0x50]
neg esi
call fcn.00552490
add esp, 4
test eax, eax
jle 0x55286e
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov dx, word [esp + 0x18]
add eax, ecx
push esi
mov word [esp + 0x66], ax
push edi
lea eax, [esp + 0x68]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ecx
push eax
lea ecx, [esp + 0x48]
mov word [esp + 0x6c], dx
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.005526d0
mov ax, word [esp + 0x76]
push esi
push edi
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x5c]
mov word [esp + 0x38], ax
push edx
lea eax, [esp + 0x44]
push eax
call fcn.005526d0
add esp, 0x28
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x48
ret
mov ecx, eax
neg ecx
cmp esi, ecx
je 0x552898
imul eax, eax, 0x1c
lea edx, [esp + 0x30]
sub edx, eax
mov eax, esi
imul eax, eax, 0x1c
lea ecx, [esp + eax + 0x30]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0x18]
mov ebx, esi
imul ebx, ebx, 0x1c
lea ecx, [esp + ebx + 0x20]
mov dword [esp + 0x10], ebx
mov dword [ecx], eax
jmp 0x5528b0
mov ax, word [esp + ebx + 0x24]
mov dx, word [esp + ebx + 0x30]
cmp ax, dx
jg 0x5528d4
mov si, word [esp + ebx + 0x26]
cmp si, word [esp + ebx + 0x32]
jle 0x5529c9
cmp ax, dx
jle 0x5528e4
mov dx, word [esp + ebx + 0x26]
cmp dx, word [esp + ebx + 0x32]
jg 0x5529c9
mov bp, word [ecx + 4]
mov si, word [ecx + 0x10]
cmp bp, si
jge 0x5528fb
mov dword [esp + 0x64], 0xffffffff
jmp 0x552907
xor eax, eax
cmp bp, si
setg al
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 8]
mov edi, dword [ecx + 0x14]
cmp eax, edi
jge 0x55291b
mov dword [esp + 0x14], 0xffffffff
jmp 0x552926
xor edx, edx
cmp eax, edi
setg dl
mov dword [esp + 0x14], edx
mov ax, word [ecx + 6]
mov di, word [ecx + 0x12]
cmp ax, di
jge 0x55293a
mov edx, 0xffffffff
jmp 0x552942
xor edx, edx
cmp ax, di
setg dl
cmp word [esp + 0x64], 1
jne 0x552964
movsx esi, si
movsx ebx, bp
sub ebx, esi
cmp ebx, 1
mov ebx, dword [esp + 0x10]
jne 0x552964
mov word [ecx + 0x10], bp
jmp 0x5528b0
cmp dx, 1
jne 0x552980
movsx esi, di
movsx edi, ax
sub edi, esi
cmp edi, 1
jne 0x552980
mov word [ecx + 0x12], ax
jmp 0x5528b0
mov eax, dword [esp + 0x14]
test ax, ax
jne 0x552a2e
cmp word [esp + 0x64], dx
je 0x5529a4
movsx eax, word [ecx + 6]
mov dx, word [ecx + 0x12]
mov word [ecx + 6], dx
mov word [ecx + 0x12], ax
mov eax, dword [ecx + 0xc]
mov edx, dword [ecx + 0x18]
mov edi, eax
sub edi, edx
jns 0x5529b4
mov edi, edx
sub edi, eax
cmp edi, 0x10000
jge 0x5529c9
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov dword [ecx + 0x18], eax
mov dword [ecx + 0xc], eax
mov ax, word [esp + ebx + 0x24]
cmp ax, word [esp + ebx + 0x30]
jg 0x5529e1
mov dx, word [esp + ebx + 0x26]
cmp dx, word [esp + ebx + 0x32]
jle 0x552a19
movsx eax, word [ecx + 4]
mov dx, word [ecx + 0x10]
mov word [ecx + 0x10], ax
mov eax, dword [ecx + 8]
mov word [ecx + 4], dx
mov edx, dword [ecx + 0x14]
mov dword [ecx + 0x14], eax
movsx eax, word [ecx + 6]
mov dword [ecx + 8], edx
mov dx, word [ecx + 0x12]
mov word [ecx + 6], dx
mov edx, dword [ecx + 0x18]
mov word [ecx + 0x12], ax
mov eax, dword [ecx + 0xc]
mov dword [ecx + 0xc], edx
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x6c]
push eax
push ecx
call dword [esp + 0x70]
add esp, 8
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x48
ret
cmp word [esp + 0x64], ax
je 0x552994
movsx eax, word [ecx + 4]
mov dx, word [ecx + 0x10]
mov word [ecx + 4], dx
mov word [ecx + 0x10], ax
jmp 0x5529a4