Function at 0x4ab860
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x24
movsx eax, word [esp + 0x30]
test eax, eax
mov dword [esp + 8], 0
jle 0x4abd3e
mov eax, dword [esp + 0x2c]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
push edi
mov dword [esp + 0x14], eax
movsx edi, word [esi + 0x1a]
movsx ecx, word [esi + 0x10]
movsx edx, word [esi + 0x1e]
imul edi, ecx
movsx eax, word [esi + 0xc]
imul edx, eax
movsx ecx, word [esi + 0x16]
add edi, edx
movsx edx, word [esi + 0x14]
imul ecx, edx
movsx eax, word [esi + 0x18]
add edi, ecx
movsx ecx, word [esi + 0x12]
imul eax, ecx
movsx edx, word [esi + 0x1c]
add edi, eax
movsx eax, word [esi + 0xe]
imul edx, eax
movsx ecx, word [esi + 0x20]
add edi, edx
movsx edx, word [esi + 0xa]
imul ecx, edx
movsx edx, word [esi + 4]
movsx eax, word [esi + 6]
add edi, ecx
movsx ecx, word [esi + 8]
imul ecx, edx
movsx edx, word [esi + 2]
imul eax, edx
mov edx, edi
add edx, ecx
mov cx, word [esi + 0x24]
add eax, edx
mov dx, word [esi + 0x26]
mov dword [esp + 0x2c], eax
mov ax, word [esi + 0x22]
cmp dx, 0x100
mov word [esp + 0x20], ax
mov word [esp + 0x24], cx
mov dword [esp + 0x30], edx
jl 0x4ab91c
mov edx, 0x40
jmp 0x4ab920
sar dx, 2
mov ecx, dword [esi + 0x30]
mov bx, word [esi + 0x28]
mov eax, ecx
mov dword [esp + 0x3c], ecx
sar eax, 6
sub bx, ax
mov dword [esp + 0x28], eax
movsx eax, bx
movsx edx, dx
imul eax, edx
mov edx, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x38]
sar eax, 6
movzx bp, byte [edx + ecx]
cmp bp, 2
mov dword [esp + 0x44], eax
jl 0x4ab96a
mov ecx, 3
mov edx, 1
sub ecx, ebp
jmp 0x4ab96e
mov ecx, ebp
xor edx, edx
movsx ecx, cx
sar ax, 2
mov bx, word [ecx*2 + 0x5cfbe0]
push edx
add bx, ax
push ebx
call fcn.00515a00
movsx ecx, bx
mov dword [esp + 0x24], eax
mov eax, ecx
shl eax, 5
add eax, ecx
mov ebx, dword [esp + 0x44]
add esp, 8
lea edx, [eax + eax*2]
lea eax, [ecx + edx*4]
lea eax, [eax + eax*8]
lea ecx, [ecx + eax*2]
cmp ecx, ebx
jle 0x4ab9bb
cmp word [esi + 0x2a], 0
mov dword [esp + 0x10], 1
jne 0x4ab9c3
mov dword [esp + 0x10], 0
push ebp
call fcn.00515a30
mov ecx, dword [esp + 0x24]
mov edx, eax
shl edx, 9
sub dx, cx
push ebp
sar dx, 5
shl eax, 0xb
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x2c]
mov word [esi + 0x22], dx
sub cx, ax
sar cx, 7
add ecx, eax
mov word [esi + 0x24], cx
call fcn.00515a60
mov ecx, dword [esp + 0x4c]
add esp, 8
shl eax, 5
sub ax, cx
sar ax, 5
add eax, ecx
cmp ax, 0x220
jge 0x4aba1c
mov word [esi + 0x28], 0x220
jmp 0x4aba2e
cmp ax, 0x1400
jle 0x4aba2a
mov word [esi + 0x28], 0x1400
jmp 0x4aba2e
mov word [esi + 0x28], ax
movsx edx, word [esi + 0x28]
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov cx, word [esi + 0x2e]
sub edx, eax
mov ax, word [esi + 0x2c]
add edx, ebx
sar edi, 0xd
add edi, ebp
mov dword [esi + 0x30], edx
test di, di
mov word [esi + 0x2e], ax
mov word [esi + 0x2c], di
jge 0x4aba60
or edi, 0xffffffff
jmp 0x4aba6a
xor edx, edx
test di, di
setne dl
mov edi, edx
mov ax, word [esi + 2]
mov word [esi + 4], ax
mov eax, dword [esp + 0x2c]
movsx edx, bp
sar eax, 0xd
add eax, edx
mov edx, eax
sar edx, 1
cmp eax, 0x7fff
mov word [esi + 2], dx
jle 0x4aba98
mov eax, dword [esp + 0x14]
mov word [eax], 0x7fff
jmp 0x4abaad
mov edx, dword [esp + 0x14]
cmp eax, 0xffff8000
jge 0x4abaaa
mov word [edx], 0x8000
jmp 0x4abaad
mov word [edx], ax
mov ax, word [esi + 6]
mov dx, word [esi + 8]
push edi
push eax
mov ax, word [esi + 0x2e]
push edx
push ecx
push eax
call fcn.00515a90
mov ebx, dword [esp + 0x24]
add esp, 0x14
test bx, bx
je 0x4abad3
xor ecx, ecx
jmp 0x4abad6
movsx ecx, ax
xor edx, edx
mov word [esi + 8], cx
cmp word [esi + 0x2e], dx
mov cx, word [esi + 6]
setl dl
dec edx
and edx, 0x180
add edx, 0xffffff40
imul edx, edi
mov di, cx
sar di, 8
sub edx, edi
add edx, ecx
mov ecx, 0x3c00
sub ecx, eax
cmp dx, cx
jg 0x4abb24
movsx edi, cx
movsx ebx, dx
neg edi
cmp ebx, edi
jge 0x4abb1e
neg ecx
jmp 0x4abb20
mov ecx, edx
mov ebx, dword [esp + 0x10]
xor edi, edi
cmp bx, di
je 0x4abb2f
xor ecx, ecx
jmp 0x4abb32
movsx ecx, cx
xor edx, edx
cmp ax, 0xd200
setl dl
cmp bx, di
mov word [esi + 6], cx
je 0x4abb48
xor eax, eax
jmp 0x4abb4b
movsx eax, dx
movsx ecx, word [esi + 0x24]
mov word [esi + 0x2a], ax
movsx eax, word [esi + 0x22]
shl eax, 2
sub eax, ecx
jns 0x4abb60
neg eax
sar ecx, 3
cmp eax, ecx
jge 0x4abb79
cmp word [esp + 0x44], 0x600
jl 0x4abb79
cmp dx, di
jne 0x4abb79
xor ecx, ecx
jmp 0x4abb7e
mov ecx, 1
mov eax, dword [esp + 0x30]
mov dx, ax
sar dx, 4
sub eax, edx
cmp cx, di
je 0x4abb93
add eax, 0x20
cmp bx, di
je 0x4abb9f
mov eax, 0x100
jmp 0x4abba2
movsx eax, ax
cmp bp, di
mov word [esi + 0x26], ax
jle 0x4abbbf
mov edi, 0x40
mov ecx, 0xffffffc0
mov dword [esp + 0x44], edi
mov dword [esp + 0x3c], ecx
jmp 0x4abbe3
jge 0x4abbd3
mov dword [esp + 0x44], 0xffffffc0
mov dword [esp + 0x3c], 0x40
jmp 0x4abbdb
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
cmp word [esi + 0x20], 0
mov edx, edi
jge 0x4abbee
mov edx, ecx
test bx, bx
je 0x4abbf7
xor eax, eax
jmp 0x4abc09
mov ax, word [esi + 0xa]
mov bp, ax
sar bp, 8
sub eax, ebp
add eax, edx
movsx eax, ax
cmp word [esi + 0x1e], 0
mov word [esi + 0xa], ax
mov edx, edi
jge 0x4abc18
mov edx, ecx
test bx, bx
je 0x4abc21
xor eax, eax
jmp 0x4abc33
mov ax, word [esi + 0xc]
mov bp, ax
sar bp, 8
sub eax, ebp
add eax, edx
movsx eax, ax
mov bp, word [esi + 0x1c]
mov word [esi + 0xc], ax
test bp, bp
mov edx, edi
jge 0x4abc44
mov edx, ecx
test bx, bx
je 0x4abc4d
xor eax, eax
jmp 0x4abc5f
mov ax, word [esi + 0xe]
mov bx, ax
sar bx, 8
sub eax, ebx
add eax, edx
movsx eax, ax
mov bx, word [esi + 0x1a]
mov word [esi + 0xe], ax
test bx, bx
mov edx, edi
jge 0x4abc70
mov edx, ecx
mov ecx, dword [esp + 0x10]
test cx, cx
je 0x4abc7d
xor eax, eax
jmp 0x4abc8f
mov ax, word [esi + 0x10]
mov di, ax
sar di, 8
sub eax, edi
add eax, edx
movsx eax, ax
mov di, word [esi + 0x18]
mov edx, dword [esp + 0x44]
test di, di
mov word [esi + 0x10], ax
jge 0x4abca4
mov edx, dword [esp + 0x3c]
test cx, cx
je 0x4abcad
xor eax, eax
jmp 0x4abcbf
mov ax, word [esi + 0x12]
mov cx, ax
sar cx, 8
sub eax, ecx
add eax, edx
movsx eax, ax
cmp word [esi + 0x16], 0
mov ecx, dword [esp + 0x44]
mov word [esi + 0x12], ax
jge 0x4abcd2
mov ecx, dword [esp + 0x3c]
cmp word [esp + 0x10], 0
je 0x4abcde
xor eax, eax
jmp 0x4abcf0
mov ax, word [esi + 0x14]
mov dx, ax
sar dx, 8
sub eax, edx
add eax, ecx
movsx eax, ax
mov word [esi + 0x14], ax
mov ax, word [esi + 0x1e]
movsx ecx, word [esp + 0x40]
mov word [esi + 0x1c], ax
mov ax, word [esi + 0x20]
mov word [esi + 0x1e], ax
mov ax, word [esp + 0x1c]
mov word [esi + 0x20], ax
mov eax, dword [esp + 0x18]
mov word [esi + 0x16], di
mov edi, dword [esp + 0x14]
inc eax
add edi, 2
cmp eax, ecx
mov word [esi + 0x18], bx
mov word [esi + 0x1a], bp
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], edi
jl 0x4ab888
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret