Function at 0x4df690
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push esi
push edi
mov edi, dword [ebp + 8]
xor ecx, ecx
add edi, 4
mov esi, eax
mov edx, edi
mov dword [ebp - 0x1c], 0x20
push ebx
lea esp, [esp]
movzx eax, word [edx - 4]
test ax, ax
jns 0x4df6cf
mov ebx, 0xffff8000
cmp ax, bx
jne 0x4df6ca
mov eax, 0x7fff
jmp 0x4df6cf
neg eax
movzx eax, ax
cmp ax, cx
jle 0x4df6d7
movzx ecx, ax
movzx eax, word [edx - 2]
test ax, ax
jns 0x4df6f6
mov ebx, 0xffff8000
cmp ax, bx
jne 0x4df6f1
mov eax, 0x7fff
jmp 0x4df6f6
neg eax
movzx eax, ax
cmp ax, cx
jle 0x4df6fe
movzx ecx, ax
movzx eax, word [edx]
test ax, ax
jns 0x4df71c
mov ebx, 0xffff8000
cmp ax, bx
jne 0x4df717
mov eax, 0x7fff
jmp 0x4df71c
neg eax
movzx eax, ax
cmp ax, cx
jle 0x4df724
movzx ecx, ax
movzx eax, word [edx + 2]
test ax, ax
jns 0x4df743
mov ebx, 0xffff8000
cmp ax, bx
jne 0x4df73e
mov eax, 0x7fff
jmp 0x4df743
neg eax
movzx eax, ax
cmp ax, cx
jle 0x4df74b
movzx ecx, ax
movzx eax, word [edx + 4]
test ax, ax
jns 0x4df76a
mov ebx, 0xffff8000
cmp ax, bx
jne 0x4df765
mov eax, 0x7fff
jmp 0x4df76a
neg eax
movzx eax, ax
cmp ax, cx
jle 0x4df772
movzx ecx, ax
add edx, 0xa
dec dword [ebp - 0x1c]
jne 0x4df6b0
test cx, cx
jne 0x4df78f
mov dword [ebp - 0x24], 0
jmp case.default.0x4df7c0
movsx eax, cx
shl eax, 0x10
push eax
call fcn.004dc2c0
mov ecx, 4
sub cx, ax
movzx eax, cx
add esp, 4
mov dword [ebp - 0x24], eax
test ax, ax
jle case.default.0x4df7c0
cwde
dec eax
cmp eax, 3
ja case.default.0x4df7c0
jmp dword [eax*4 + 0x4dff84]
mov eax, edi
mov edi, 0x20
mov edi, edi
movsx edx, word [eax - 4]
shl edx, 0xe
lea ecx, [edx + 0x4000]
test ecx, ecx
js 0x4df7e6
sar ecx, 0xf
jmp 0x4df7f2
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax - 2]
shl edx, 0xe
mov word [eax - 4], cx
lea ecx, [edx + 0x4000]
test ecx, ecx
js 0x4df80c
sar ecx, 0xf
jmp 0x4df818
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax]
shl edx, 0xe
mov word [eax - 2], cx
lea ecx, [edx + 0x4000]
test ecx, ecx
js 0x4df831
sar ecx, 0xf
jmp 0x4df83d
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 2]
shl edx, 0xe
mov word [eax], cx
lea ecx, [edx + 0x4000]
test ecx, ecx
js 0x4df856
sar ecx, 0xf
jmp 0x4df862
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 4]
shl edx, 0xe
mov word [eax + 2], cx
lea ecx, [edx + 0x4000]
test ecx, ecx
js 0x4df87c
sar ecx, 0xf
jmp 0x4df888
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
mov word [eax + 4], cx
add eax, 0xa
dec edi
jne 0x4df7d0
jmp case.default.0x4df7c0
mov eax, edi
mov edi, 0x20
movsx edx, word [eax - 4]
lea ecx, [edx + 2]
shl ecx, 0xd
test ecx, ecx
js 0x4df8b5
sar ecx, 0xf
jmp 0x4df8c4
shl edx, 0xd
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax - 2]
mov word [eax - 4], cx
lea ecx, [edx + 2]
shl ecx, 0xd
test ecx, ecx
js 0x4df8db
sar ecx, 0xf
jmp 0x4df8ea
shl edx, 0xd
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax]
mov word [eax - 2], cx
lea ecx, [edx + 2]
shl ecx, 0xd
test ecx, ecx
js 0x4df900
sar ecx, 0xf
jmp 0x4df90f
shl edx, 0xd
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 2]
mov word [eax], cx
lea ecx, [edx + 2]
shl ecx, 0xd
test ecx, ecx
js 0x4df925
sar ecx, 0xf
jmp 0x4df934
shl edx, 0xd
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 4]
mov word [eax + 2], cx
lea ecx, [edx + 2]
shl ecx, 0xd
test ecx, ecx
js 0x4df94b
sar ecx, 0xf
jmp 0x4df95a
shl edx, 0xd
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
mov word [eax + 4], cx
add eax, 0xa
dec edi
jne 0x4df8a2
jmp case.default.0x4df7c0
mov eax, edi
mov edi, 0x20
movsx edx, word [eax - 4]
lea ecx, [edx + 4]
shl ecx, 0xc
test ecx, ecx
js 0x4df987
sar ecx, 0xf
jmp 0x4df996
shl edx, 0xc
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax - 2]
mov word [eax - 4], cx
lea ecx, [edx + 4]
shl ecx, 0xc
test ecx, ecx
js 0x4df9ad
sar ecx, 0xf
jmp 0x4df9bc
shl edx, 0xc
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax]
mov word [eax - 2], cx
lea ecx, [edx + 4]
shl ecx, 0xc
test ecx, ecx
js 0x4df9d2
sar ecx, 0xf
jmp 0x4df9e1
shl edx, 0xc
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 2]
mov word [eax], cx
lea ecx, [edx + 4]
shl ecx, 0xc
test ecx, ecx
js 0x4df9f7
sar ecx, 0xf
jmp 0x4dfa06
shl edx, 0xc
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 4]
mov word [eax + 2], cx
lea ecx, [edx + 4]
shl ecx, 0xc
test ecx, ecx
js 0x4dfa1d
sar ecx, 0xf
jmp 0x4dfa2c
shl edx, 0xc
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
mov word [eax + 4], cx
add eax, 0xa
dec edi
jne 0x4df974
jmp case.default.0x4df7c0
mov eax, edi
mov edi, 0x20
movsx edx, word [eax - 4]
lea ecx, [edx + 8]
shl ecx, 0xb
test ecx, ecx
js 0x4dfa59
sar ecx, 0xf
jmp 0x4dfa68
shl edx, 0xb
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax - 2]
mov word [eax - 4], cx
lea ecx, [edx + 8]
shl ecx, 0xb
test ecx, ecx
js 0x4dfa7f
sar ecx, 0xf
jmp 0x4dfa8e
shl edx, 0xb
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax]
mov word [eax - 2], cx
lea ecx, [edx + 8]
shl ecx, 0xb
test ecx, ecx
js 0x4dfaa4
sar ecx, 0xf
jmp 0x4dfab3
shl edx, 0xb
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 2]
mov word [eax], cx
lea ecx, [edx + 8]
shl ecx, 0xb
test ecx, ecx
js 0x4dfac9
sar ecx, 0xf
jmp 0x4dfad8
shl edx, 0xb
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
movsx edx, word [eax + 4]
mov word [eax + 2], cx
lea ecx, [edx + 8]
shl ecx, 0xb
test ecx, ecx
js 0x4dfaef
sar ecx, 0xf
jmp 0x4dfafe
shl edx, 0xb
mov ecx, 0xffffbfff
sub ecx, edx
sar ecx, 0xf
not ecx
mov word [eax + 4], cx
add eax, 0xa
dec edi
jne 0x4dfa46
mov edx, dword [ebp + 8]
movzx eax, word [edx]
mov ecx, 9
jmp 0x4dfb20
dec ecx
mov dword [esi + ecx*4], 0
jne 0x4dfb20
movsx ecx, word [edx]
cwde
imul ecx, eax
lea eax, [edx + 2]
add dword [esi], ecx
movsx ecx, word [eax]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 4], edx
movsx ecx, word [eax + 2]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 8], edx
movsx ecx, word [eax + 4]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax + 2]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax]
imul edx, ecx
add dword [esi + 8], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 0xc], edx
movsx ecx, word [eax + 6]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax + 4]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax + 2]
imul edx, ecx
add dword [esi + 8], edx
movsx edx, word [eax]
imul edx, ecx
add dword [esi + 0xc], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 0x10], edx
movsx ecx, word [eax + 8]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax + 6]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax + 4]
imul edx, ecx
add dword [esi + 8], edx
movsx edx, word [eax + 2]
imul edx, ecx
add dword [esi + 0xc], edx
movsx edx, word [eax]
imul edx, ecx
add dword [esi + 0x10], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 0x14], edx
movsx ecx, word [eax + 0xa]
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax + 8]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax + 6]
imul edx, ecx
add dword [esi + 8], edx
movsx edx, word [eax + 4]
imul edx, ecx
add dword [esi + 0xc], edx
movsx edx, word [eax + 2]
imul edx, ecx
add dword [esi + 0x10], edx
movsx edx, word [eax]
imul edx, ecx
add dword [esi + 0x14], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 0x18], edx
movsx ecx, word [eax + 0xc]
add eax, 0xc
mov edx, ecx
imul edx, ecx
add dword [esi], edx
movsx edx, word [eax - 2]
imul edx, ecx
add dword [esi + 4], edx
movsx edx, word [eax - 4]
imul edx, ecx
add dword [esi + 8], edx
movsx edx, word [eax - 6]
imul edx, ecx
add dword [esi + 0xc], edx
movsx edx, word [eax - 8]
imul edx, ecx
add dword [esi + 0x10], edx
movsx edx, word [eax - 0xa]
imul edx, ecx
add dword [esi + 0x14], edx
movsx edx, word [eax - 0xc]
imul edx, ecx
add dword [esi + 0x18], edx
movsx edx, word [eax - 0xe]
imul edx, ecx
add dword [esi + 0x1c], edx
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [ebp - 4], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0xc], ecx
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x10], ecx
mov ecx, dword [esi + 0x1c]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], 0x26
jmp 0x4dfcd3
mov edi, dword [ebp - 0x1c]
movzx ebx, word [eax + 2]
mov ecx, ebx
movsx ebx, bx
movsx ecx, cx
imul ebx, ecx
add dword [esi], ebx
movsx ebx, word [eax]
imul ebx, ecx
add edx, ebx
mov dword [esi + 4], edx
movsx ebx, word [eax - 2]
imul ebx, ecx
add edi, ebx
mov dword [esi + 8], edi
movsx ebx, word [eax - 4]
imul ebx, ecx
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 4]
add edi, ebx
mov dword [esi + 0xc], edi
movsx ebx, word [eax - 6]
imul ebx, ecx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
add edi, ebx
mov dword [esi + 0x10], edi
movsx ebx, word [eax - 8]
imul ebx, ecx
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0xc]
add edi, ebx
mov dword [esi + 0x14], edi
movsx ebx, word [eax - 0xa]
imul ebx, ecx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
add edi, ebx
mov dword [esi + 0x18], edi
movsx ebx, word [eax - 0xc]
imul ebx, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
add edi, ebx
mov dword [esi + 0x1c], edi
mov dword [ebp - 0x14], edi
movsx edi, word [eax - 0xe]
imul edi, ecx
mov ecx, dword [ebp - 0x18]
add ecx, edi
mov dword [esi + 0x20], ecx
movzx edi, word [eax + 4]
mov dword [ebp - 0x18], ecx
mov ecx, edi
movsx edi, di
movsx ecx, cx
imul edi, ecx
add dword [esi], edi
movsx edi, word [eax + 2]
imul edi, ecx
add edx, edi
mov edi, dword [ebp - 0x1c]
mov dword [esi + 4], edx
movsx ebx, word [eax]
imul ebx, ecx
add edi, ebx
mov dword [esi + 8], edi
movsx ebx, word [eax - 2]
imul ebx, ecx
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 4]
add edi, ebx
mov dword [esi + 0xc], edi
movsx ebx, word [eax - 4]
imul ebx, ecx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
add edi, ebx
mov dword [esi + 0x10], edi
movsx ebx, word [eax - 6]
mov dword [ebp - 8], edi
imul ebx, ecx
mov edi, dword [ebp - 0xc]
add edi, ebx
mov dword [esi + 0x14], edi
movsx ebx, word [eax - 8]
imul ebx, ecx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
add edi, ebx
mov dword [esi + 0x18], edi
movsx ebx, word [eax - 0xa]
imul ebx, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
add edi, ebx
mov dword [esi + 0x1c], edi
mov dword [ebp - 0x14], edi
movsx edi, word [eax - 0xc]
imul edi, ecx
mov ecx, dword [ebp - 0x18]
add ecx, edi
mov dword [esi + 0x20], ecx
movzx edi, word [eax + 6]
mov dword [ebp - 0x18], ecx
mov ecx, edi
movsx edi, di
movsx ecx, cx
imul edi, ecx
add dword [esi], edi
movsx edi, word [eax + 4]
imul edi, ecx
add edx, edi
mov edi, dword [ebp - 0x1c]
mov dword [esi + 4], edx
movsx ebx, word [eax + 2]
imul ebx, ecx
add edi, ebx
mov dword [esi + 8], edi
movsx ebx, word [eax]
imul ebx, ecx
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 4]
add edi, ebx
mov dword [esi + 0xc], edi
movsx ebx, word [eax - 2]
imul ebx, ecx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
add edi, ebx
mov dword [esi + 0x10], edi
movsx ebx, word [eax - 4]
imul ebx, ecx
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0xc]
add edi, ebx
mov dword [esi + 0x14], edi
movsx ebx, word [eax - 6]
imul ebx, ecx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
add edi, ebx
mov dword [esi + 0x18], edi
movsx ebx, word [eax - 8]
imul ebx, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
add edi, ebx
mov dword [ebp - 0x14], edi
mov dword [esi + 0x1c], edi
movsx edi, word [eax - 0xa]
imul edi, ecx
mov ecx, dword [ebp - 0x18]
add ecx, edi
mov dword [esi + 0x20], ecx
movzx edi, word [eax + 8]
mov dword [ebp - 0x18], ecx
mov ecx, edi
movsx edi, di
movsx ecx, cx
imul edi, ecx
add dword [esi], edi
movsx edi, word [eax + 6]
imul edi, ecx
add edx, edi
mov edi, dword [ebp - 0x1c]
mov dword [esi + 4], edx
movsx ebx, word [eax + 4]
imul ebx, ecx
add edi, ebx
mov dword [esi + 8], edi
movsx ebx, word [eax + 2]
imul ebx, ecx
mov dword [ebp - 0x1c], edi
mov edi, dword [ebp - 4]
add edi, ebx
mov dword [esi + 0xc], edi
movsx ebx, word [eax]
imul ebx, ecx
mov dword [ebp - 4], edi
mov edi, dword [ebp - 8]
add edi, ebx
mov dword [esi + 0x10], edi
movsx ebx, word [eax - 2]
imul ebx, ecx
mov dword [ebp - 8], edi
mov edi, dword [ebp - 0xc]
add edi, ebx
mov dword [esi + 0x14], edi
movsx ebx, word [eax - 4]
imul ebx, ecx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x10]
add edi, ebx
mov dword [esi + 0x18], edi
movsx ebx, word [eax - 6]
imul ebx, ecx
mov dword [ebp - 0x10], edi
mov edi, dword [ebp - 0x14]
add edi, ebx
mov dword [ebp - 0x14], edi
mov dword [esi + 0x1c], edi
movsx edi, word [eax - 8]
imul edi, ecx
mov ecx, dword [ebp - 0x18]
add ecx, edi
add eax, 8
dec dword [ebp - 0x20]
mov dword [ebp - 0x18], ecx
mov dword [esi + 0x20], ecx
jne 0x4dfcd0
mov eax, 9
pop ebx
lea ebx, [ebx]
shl dword [esi + eax*4 - 4], 1
dec eax
test eax, eax
jne 0x4dff50
mov esi, dword [ebp - 0x24]
test si, si
jle 0x4dff7c
mov eax, dword [ebp + 8]
mov edx, 0xa0
lea esp, [esp]
mov cx, si
shl word [eax], cl
add eax, 2
dec edx
jne 0x4dff70
pop edi
pop esi
mov esp, ebp
pop ebp
ret