Function at 0x4ab370
Capabilities:
Enumerate pe sections

Disassembly:
mov ax, word [esp + 0xc]
sub esp, 0x24
test ax, ax
jle 0x4ab853
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
movsx eax, ax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x40]
push edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], eax
movsx edi, word [esi + 0x16]
movsx ecx, word [esi + 0x14]
movsx edx, word [esi + 0x18]
imul edi, ecx
movsx eax, word [esi + 0x12]
imul edx, eax
movsx ecx, word [esi + 0x1c]
add edi, edx
movsx edx, word [esi + 0xe]
imul ecx, edx
movsx eax, word [esi + 0x20]
add edi, ecx
movsx ecx, word [esi + 0xa]
imul eax, ecx
movsx edx, word [esi + 0x1a]
add edi, eax
movsx eax, word [esi + 0x10]
imul edx, eax
movsx ecx, word [esi + 0x1e]
add edi, edx
movsx edx, word [esi + 0xc]
imul ecx, edx
movsx eax, word [esi + 6]
add edi, ecx
movsx ecx, word [esi + 2]
movsx edx, word [esi + 4]
imul eax, ecx
movsx ecx, word [esi + 8]
imul ecx, edx
mov edx, edi
add edx, eax
mov eax, dword [esp + 0x10]
add ecx, edx
mov dx, word [esi + 0x24]
movsx eax, word [eax]
shl eax, 0xd
mov dword [esp + 0x2c], ecx
sub eax, ecx
mov cx, word [esi + 0x22]
mov word [esp + 0x3c], dx
mov word [esp + 0x44], cx
mov cx, word [esi + 0x26]
sar eax, 0xd
cmp cx, 0x100
mov dword [esp + 0x30], ecx
jl 0x4ab443
mov ebx, 0x40
jmp 0x4ab44a
mov bx, cx
sar bx, 2
mov ecx, dword [esi + 0x30]
mov bp, word [esi + 0x28]
mov edx, ecx
mov dword [esp + 0x28], ecx
sar edx, 6
sub bp, dx
mov dword [esp + 0x24], edx
movsx ebp, bp
movsx edx, bx
imul ebp, edx
add ebp, ecx
mov dword [esp + 0x40], 0
sar ebp, 6
test ax, ax
mov dword [esp + 0x20], ebp
jge 0x4ab48a
mov dword [esp + 0x40], 1
neg eax
push eax
sar bp, 2
call fcn.00515880
mov edx, dword [esp + 0x44]
lea ecx, [esp + 0x20]
sub eax, ebp
push ecx
push edx
push eax
call fcn.005159d0
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov ebx, eax
mov eax, dword [esp + 0x24]
add ebp, ecx
push edx
push ebp
mov byte [eax], bl
call fcn.00515a00
push ebx
mov dword [esp + 0x54], eax
call fcn.00515a30
mov ecx, eax
push ebx
shl ecx, 9
mov edx, ecx
mov ecx, dword [esp + 0x64]
sub dx, cx
sar dx, 5
shl eax, 0xb
add edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x5c]
mov word [esi + 0x22], dx
sub cx, ax
sar cx, 7
add ecx, eax
mov word [esi + 0x24], cx
call fcn.00515a60
mov ebx, dword [esp + 0x40]
add esp, 0x20
shl eax, 5
sub ax, bx
sar ax, 5
add eax, ebx
cmp ax, 0x220
jge 0x4ab51e
mov word [esi + 0x28], 0x220
jmp 0x4ab530
cmp ax, 0x1400
jle 0x4ab52c
mov word [esi + 0x28], 0x1400
jmp 0x4ab530
mov word [esi + 0x28], ax
movsx eax, word [esi + 0x28]
mov edx, dword [esp + 0x24]
sub eax, edx
mov edx, dword [esp + 0x28]
movsx ecx, bp
add eax, edx
mov dword [esi + 0x30], eax
mov eax, ecx
shl eax, 5
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
lea eax, [eax + eax*8]
lea ecx, [ecx + eax*2]
cmp ecx, edx
jle 0x4ab56c
mov eax, 1
cmp word [esi + 0x2a], ax
mov dword [esp + 0x3c], eax
je 0x4ab574
mov dword [esp + 0x3c], 0
mov ebp, dword [esp + 0x38]
mov dx, word [esi + 0x2c]
mov cx, word [esi + 0x2e]
mov word [esi + 0x2e], dx
sar edi, 0xd
add edi, ebp
test di, di
mov word [esi + 0x2c], di
jge 0x4ab597
or edi, 0xffffffff
jmp 0x4ab5a1
xor eax, eax
test di, di
setne al
mov edi, eax
mov dx, word [esi + 2]
mov eax, dword [esp + 0x2c]
mov word [esi + 4], dx
push edi
movsx edx, bp
sar eax, 0xd
add eax, edx
mov dx, word [esi + 8]
sar eax, 1
mov word [esi + 2], ax
mov ax, word [esi + 6]
push eax
mov ax, word [esi + 0x2e]
push edx
push ecx
push eax
call fcn.00515a90
add esp, 0x14
cmp word [esp + 0x3c], 0
je 0x4ab5e0
xor ecx, ecx
jmp 0x4ab5e3
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 0x4ab631
movsx edi, cx
movsx ebp, dx
neg edi
cmp ebp, edi
jge 0x4ab62b
neg ecx
jmp 0x4ab62d
mov ecx, edx
mov ebp, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
test di, di
je 0x4ab63e
xor ecx, ecx
jmp 0x4ab641
movsx ecx, cx
xor edx, edx
cmp ax, 0xd200
setl dl
test di, di
mov word [esi + 6], cx
je 0x4ab657
xor eax, eax
jmp 0x4ab65a
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 0x4ab66f
neg eax
sar ecx, 3
cmp eax, ecx
jge 0x4ab686
cmp bx, 0x600
jl 0x4ab686
test dx, dx
jne 0x4ab686
xor ecx, ecx
jmp 0x4ab68b
mov ecx, 1
mov eax, dword [esp + 0x30]
mov dx, ax
sar dx, 4
sub eax, edx
xor edx, edx
cmp cx, dx
je 0x4ab6a2
add eax, 0x20
cmp di, dx
je 0x4ab6ae
mov eax, 0x100
jmp 0x4ab6b1
movsx eax, ax
cmp bp, dx
mov word [esi + 0x26], ax
jle 0x4ab6ce
mov edi, 0x40
mov ecx, 0xffffffc0
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], ecx
jmp 0x4ab6f2
jge 0x4ab6e2
mov dword [esp + 0x40], 0xffffffc0
mov dword [esp + 0x44], 0x40
jmp 0x4ab6ea
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edx
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
cmp word [esi + 0x20], 0
mov edx, edi
jge 0x4ab6fd
mov edx, ecx
mov ebx, dword [esp + 0x3c]
test bx, bx
je 0x4ab70a
xor eax, eax
jmp 0x4ab71c
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 0x4ab72b
mov edx, ecx
test bx, bx
je 0x4ab734
xor eax, eax
jmp 0x4ab746
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 0x4ab757
mov edx, ecx
test bx, bx
je 0x4ab760
xor eax, eax
jmp 0x4ab772
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 0x4ab783
mov edx, ecx
mov ecx, dword [esp + 0x3c]
test cx, cx
je 0x4ab790
xor eax, eax
jmp 0x4ab7a2
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 + 0x40]
test di, di
mov word [esi + 0x10], ax
jge 0x4ab7b7
mov edx, dword [esp + 0x44]
test cx, cx
je 0x4ab7c0
xor eax, eax
jmp 0x4ab7d2
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 + 0x40]
mov word [esi + 0x12], ax
jge 0x4ab7e5
mov ecx, dword [esp + 0x44]
cmp word [esp + 0x3c], 0
je 0x4ab7f1
xor eax, eax
jmp 0x4ab803
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]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov word [esi + 0x1c], ax
mov ax, word [esi + 0x20]
mov word [esi + 0x1e], ax
mov ax, word [esp + 0x38]
mov word [esi + 0x20], ax
mov eax, dword [esp + 0x18]
add edx, 2
inc ecx
dec eax
mov word [esi + 0x16], di
mov word [esi + 0x18], bx
mov word [esi + 0x1a], bp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jne 0x4ab3a0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret