Function at 0x428aa0
Capabilities:
Enumerate pe sections

Disassembly:
push esi
push edi
push ebx
sub esp, 0x4c
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x4299b7
mov ebx, dword [ecx]
test ebx, ebx
je 0x4299b7
mov esi, dword [ecx + 4]
test esi, esi
je 0x4299b7
mov eax, dword [ebx]
test eax, eax
je 0x4299b7
cmp dword [ebx + 4], 0
je 0x4299b7
cmp dword [eax], 0
je 0x4299b7
mov eax, dword [esi]
test eax, eax
je 0x4299b7
cmp dword [esi + 4], 0
je 0x4299b7
cmp dword [eax], 0
je 0x4299b7
cmp dword [ebx + 0x14], 0
je 0x4299b7
cmp dword [esi + 0x14], 0
je 0x4299b7
cmp dword [ebx + 8], 0
jle 0x4299a9
cmp dword [esi + 8], 0
jle 0x4299a9
mov eax, dword [ebx + 0x10]
test eax, eax
jl 0x429959
mov edx, dword [ebx + 0x1c]
lea edi, [edx + edx*2]
lea edx, [edi + edi - 9]
cmp eax, edx
jg 0x429959
mov eax, dword [esi + 0x10]
test eax, eax
jl 0x429959
cmp eax, edx
jg 0x429959
cmp dword [ebx + 0xc], 0
jne 0x428b69
cmp dword [esi + 0xc], 0
je 0x42994e
test byte [ebx + 0xc], 1
je 0x428c1d
mov edi, dword [ebx + 0x14]
mov esi, dword [ebx + 0x10]
movsx eax, word [edi]
mov dword [esp + 0xc], eax
mov eax, 0x2aaaaaab
imul esi
mov eax, esi
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
cmp dword [ebx + 0x18], 0
mov eax, dword [edx]
mov dword [esp + 0x14], eax
je 0x428ba4
test esi, esi
jle 0x428c13
mov dword [esp], eax
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea esi, [edx + ecx]
sub edx, ecx
mov ecx, dword [esp + 0x10]
lea edi, [ebx + eax]
sub ebx, eax
mov dword [esp + 4], edi
add edi, esi
sub esi, dword [esp + 4]
lea eax, [edx + ebx]
sub edx, ebx
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc]
imul esi, edx
imul edi, edx
imul eax, edx
mov ebx, dword [esp]
shl esi, cl
sar esi, 5
mov dword [ebx + 8], esi
mov esi, dword [esp + 8]
imul esi, edx
shl edi, cl
shl eax, cl
shl esi, cl
mov ecx, dword [esp + 0x5c]
sar edi, 5
sar eax, 5
sar esi, 5
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], esi
mov eax, dword [ecx]
mov edx, dword [eax]
mov eax, dword [edx]
add eax, 0x10
mov dword [edx], eax
mov esi, dword [ecx + 4]
jmp 0x428c25
mov dword [esp + 0x14], 0x10437be0
test byte [esi + 0xc], 1
je 0x428cd7
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x10]
movsx eax, word [edi]
mov dword [esp + 0xc], eax
mov eax, 0x2aaaaaab
imul ebx
mov eax, ebx
sar eax, 0x1f
sub edx, eax
mov dword [esp + 0x10], edx
mov edx, dword [esi]
cmp dword [esi + 0x18], 0
mov eax, dword [edx]
mov dword [esp + 0x18], eax
je 0x428c60
test ebx, ebx
jle 0x428cd0
mov dword [esp], eax
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 8]
mov eax, dword [eax + 0xc]
lea esi, [edx + ecx]
sub edx, ecx
mov ecx, dword [esp + 0x10]
lea edi, [ebx + eax]
sub ebx, eax
mov dword [esp + 4], edi
add edi, esi
sub esi, dword [esp + 4]
lea eax, [edx + ebx]
sub edx, ebx
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc]
imul esi, edx
imul edi, edx
imul eax, edx
mov ebx, dword [esp]
shl esi, cl
sar esi, 5
mov dword [ebx + 8], esi
mov esi, dword [esp + 8]
imul esi, edx
shl edi, cl
shl eax, cl
shl esi, cl
mov ecx, dword [esp + 0x5c]
sar edi, 5
sar eax, 5
sar esi, 5
mov dword [ebx], edi
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], esi
mov eax, dword [ecx + 4]
mov edx, dword [eax]
mov eax, dword [edx]
add eax, 0x10
mov dword [edx], eax
jmp 0x428cdf
mov dword [esp + 0x18], 0x10437be0
mov eax, dword [ecx]
xor ebx, ebx
movdqa xmm0, xmmword [0x1032d030]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x5c]
mov eax, 0x2aaaaaab
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], ebx
mov edx, dword [esi + ebx*4]
mov esi, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
imul esi
mov dword [esp + 0x24], esi
sar esi, 0x1f
mov eax, dword [esp + ebx*4 + 0x14]
sub edx, esi
mov dword [esp + 0x38], eax
mov eax, edx
neg eax
mov esi, 2
mov dword [esp + 0x1c], edi
mov edi, 1
mov dword [esp + 0x3c], esi
lea ecx, [edx + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edx
lea ecx, [eax + 3]
shl edi, cl
add eax, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [eax + edx*4]
test dword [ebx + 0xc], ecx
je 0x429502
mov ecx, dword [ebx]
mov esi, edx
mov ebx, dword [esp + 0x5c]
mov edx, dword [ecx]
lea eax, [edx + 0x40]
mov dword [ecx], eax
mov edi, dword [ebx + esi*4]
cmp dword [edi + 0x18], 0
je 0x428d8f
cmp dword [esp + 0x24], 0
jle 0x428f6d
cmp dword [esp + 0x28], 4
jge 0x428e98
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
movsx esi, word [eax]
imul esi, dword [edx]
add esi, ebx
sar esi, cl
mov dword [edx], esi
movsx edi, word [eax + 2]
imul edi, dword [edx + 4]
add edi, ebx
sar edi, cl
mov dword [edx + 4], edi
movsx esi, word [eax + 4]
imul esi, dword [edx + 8]
add esi, ebx
sar esi, cl
mov dword [edx + 8], esi
movsx edi, word [eax + 6]
imul edi, dword [edx + 0xc]
add edi, ebx
sar edi, cl
mov dword [edx + 0xc], edi
movsx esi, word [eax + 8]
imul esi, dword [edx + 0x10]
add esi, ebx
sar esi, cl
mov dword [edx + 0x10], esi
movsx edi, word [eax + 0xa]
imul edi, dword [edx + 0x14]
add edi, ebx
sar edi, cl
mov dword [edx + 0x14], edi
movsx esi, word [eax + 0xc]
imul esi, dword [edx + 0x18]
add esi, ebx
sar esi, cl
mov dword [edx + 0x18], esi
movsx edi, word [eax + 0xe]
imul edi, dword [edx + 0x1c]
add edi, ebx
sar edi, cl
mov dword [edx + 0x1c], edi
movsx esi, word [eax + 0x10]
imul esi, dword [edx + 0x20]
add esi, ebx
sar esi, cl
mov dword [edx + 0x20], esi
movsx edi, word [eax + 0x12]
imul edi, dword [edx + 0x24]
add edi, ebx
sar edi, cl
mov dword [edx + 0x24], edi
movsx esi, word [eax + 0x14]
imul esi, dword [edx + 0x28]
add esi, ebx
sar esi, cl
mov dword [edx + 0x28], esi
movsx edi, word [eax + 0x16]
imul edi, dword [edx + 0x2c]
add edi, ebx
sar edi, cl
mov dword [edx + 0x2c], edi
movsx esi, word [eax + 0x18]
imul esi, dword [edx + 0x30]
add esi, ebx
sar esi, cl
mov dword [edx + 0x30], esi
movsx edi, word [eax + 0x1a]
imul edi, dword [edx + 0x34]
add edi, ebx
sar edi, cl
mov dword [edx + 0x34], edi
movsx esi, word [eax + 0x1c]
imul esi, dword [edx + 0x38]
add esi, ebx
sar esi, cl
mov dword [edx + 0x38], esi
movsx eax, word [eax + 0x1e]
imul eax, dword [edx + 0x3c]
add eax, ebx
sar eax, cl
mov dword [edx + 0x3c], eax
jmp 0x428f6d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
movsx ebx, word [eax]
imul ebx, dword [edx]
shl ebx, cl
mov dword [edx], ebx
movsx esi, word [eax + 2]
imul esi, dword [edx + 4]
shl esi, cl
mov dword [edx + 4], esi
movsx edi, word [eax + 4]
imul edi, dword [edx + 8]
shl edi, cl
mov dword [edx + 8], edi
movsx ebx, word [eax + 6]
imul ebx, dword [edx + 0xc]
shl ebx, cl
mov dword [edx + 0xc], ebx
movsx esi, word [eax + 8]
imul esi, dword [edx + 0x10]
shl esi, cl
mov dword [edx + 0x10], esi
movsx ebx, word [eax + 0xa]
imul ebx, dword [edx + 0x14]
shl ebx, cl
mov dword [edx + 0x14], ebx
movsx edi, word [eax + 0xc]
imul edi, dword [edx + 0x18]
shl edi, cl
mov dword [edx + 0x18], edi
movsx ebx, word [eax + 0xe]
imul ebx, dword [edx + 0x1c]
shl ebx, cl
mov dword [edx + 0x1c], ebx
movsx esi, word [eax + 0x10]
imul esi, dword [edx + 0x20]
shl esi, cl
mov dword [edx + 0x20], esi
movsx ebx, word [eax + 0x12]
imul ebx, dword [edx + 0x24]
shl ebx, cl
mov dword [edx + 0x24], ebx
movsx edi, word [eax + 0x14]
imul edi, dword [edx + 0x28]
shl edi, cl
mov dword [edx + 0x28], edi
movsx ebx, word [eax + 0x16]
imul ebx, dword [edx + 0x2c]
shl ebx, cl
mov dword [edx + 0x2c], ebx
movsx esi, word [eax + 0x18]
imul esi, dword [edx + 0x30]
shl esi, cl
mov dword [edx + 0x30], esi
movsx ebx, word [eax + 0x1a]
imul ebx, dword [edx + 0x34]
shl ebx, cl
mov dword [edx + 0x34], ebx
movsx edi, word [eax + 0x1c]
imul edi, dword [edx + 0x38]
shl edi, cl
mov dword [edx + 0x38], edi
movsx eax, word [eax + 0x1e]
imul eax, dword [edx + 0x3c]
shl eax, cl
mov dword [edx + 0x3c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0x40]
mov ebx, dword [esp + 0x5c]
mov eax, dword [eax + ecx*4]
mov dword [edx], eax
mov edi, dword [ebx + esi*4]
cmp dword [edi + 0x18], 0
je 0x428f96
cmp dword [esp + 0x24], 0
jle 0x4290de
mov ecx, dword [edx + 8]
mov edi, dword [edx + 4]
mov esi, edi
sar esi, 1
lea ebx, [eax + ecx]
sub eax, ecx
mov ecx, dword [edx + 0xc]
sub esi, ecx
sar ecx, 1
add edi, ecx
lea ecx, [edi + ebx]
sub ebx, edi
mov dword [edx + 0xc], ebx
mov ebx, dword [edx + 0x10]
mov edi, dword [edx + 0x18]
mov dword [edx], ecx
lea ecx, [eax + esi]
mov dword [edx + 4], ecx
sub eax, esi
mov ecx, dword [edx + 0x14]
mov esi, ecx
sar esi, 1
mov dword [edx + 8], eax
lea eax, [ebx + edi]
sub ebx, edi
mov edi, dword [edx + 0x1c]
sub esi, edi
sar edi, 1
add ecx, edi
movdqu xmm1, xmmword [edx]
movdqa xmm2, xmm1
lea edi, [ecx + eax]
mov dword [edx + 0x10], edi
lea edi, [ebx + esi]
sub ebx, esi
sub eax, ecx
mov dword [edx + 0x18], ebx
mov esi, dword [edx + 0x20]
mov ebx, dword [edx + 0x28]
mov dword [edx + 0x14], edi
mov edi, dword [edx + 0x24]
mov dword [edx + 0x1c], eax
lea eax, [esi + ebx]
sub esi, ebx
mov ebx, edi
sar ebx, 1
mov ecx, dword [edx + 0x2c]
sub ebx, ecx
sar ecx, 1
add edi, ecx
movdqu xmm7, xmmword [edx + 0x10]
movdqa xmm6, xmm7
lea ecx, [edi + eax]
sub eax, edi
psrad xmm6, 1
mov dword [edx + 0x2c], eax
mov dword [edx + 0x20], ecx
lea ecx, [esi + ebx]
mov eax, dword [edx + 0x38]
sub esi, ebx
mov ebx, dword [edx + 0x30]
mov dword [edx + 0x28], esi
mov dword [edx + 0x24], ecx
mov edi, dword [edx + 0x3c]
lea esi, [ebx + eax]
sub ebx, eax
mov eax, dword [edx + 0x34]
mov ecx, eax
sar ecx, 1
sub ecx, edi
sar edi, 1
add eax, edi
movdqu xmm3, xmmword [edx + 0x20]
paddd xmm2, xmm3
lea edi, [eax + esi]
mov dword [edx + 0x30], edi
lea edi, [ebx + ecx]
sub ebx, ecx
sub esi, eax
mov dword [edx + 0x34], edi
psubd xmm1, xmm3
mov dword [edx + 0x38], ebx
movdqa xmm3, xmm2
mov dword [edx + 0x3c], esi
movdqa xmm5, xmm1
movdqu xmm4, xmmword [edx + 0x30]
psubd xmm6, xmm4
psrad xmm4, 1
paddd xmm7, xmm4
paddd xmm5, xmm6
paddd xmm3, xmm7
psubd xmm1, xmm6
psubd xmm2, xmm7
paddd xmm3, xmm0
paddd xmm5, xmm0
paddd xmm1, xmm0
paddd xmm2, xmm0
psrad xmm3, 6
psrad xmm5, 6
psrad xmm1, 6
psrad xmm2, 6
movdqu xmmword [edx], xmm3
movdqu xmmword [edx + 0x10], xmm5
movdqu xmmword [edx + 0x20], xmm1
movdqu xmmword [edx + 0x30], xmm2
movd eax, xmm3
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov edi, dword [esp + 0x44]
mov ecx, dword [esi]
movzx esi, word [edi]
mov ecx, dword [ecx + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
cmp edi, eax
lea ecx, [ebx - 1]
cmovge eax, edi
cmp eax, ecx
cmovge eax, ecx
add esi, eax
cmp ebx, esi
jle 0x429114
xor ecx, ecx
test esi, esi
cmovns ecx, esi
mov eax, dword [esp + 0x44]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [eax], cx
mov edi, dword [esi]
movzx esi, word [eax + 2]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 4]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x429151
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x44]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [edi + 2], ax
mov eax, dword [esi]
movzx esi, word [edi + 4]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 8]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42918f
xor eax, eax
test esi, esi
cmovns eax, esi
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x5c]
mov word [esi + 4], ax
mov eax, 1
mov edi, dword [ebx]
movzx ebx, word [esi + 6]
mov esi, dword [edx + 0xc]
mov ecx, dword [edi + 0x1c]
shl eax, cl
mov edi, eax
neg edi
inc edi
cmp esi, edi
lea ecx, [eax - 1]
cmovge edi, esi
cmp edi, ecx
cmovge edi, ecx
add ebx, edi
cmp eax, ebx
jle 0x4291cd
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x5c]
mov word [eax + 6], cx
mov ebx, dword [esi + edi*4]
mov edi, dword [esi]
mov ecx, dword [ebx + 8]
mov ebx, 1
lea eax, [eax + ecx*2]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
mov edi, dword [edx + 0x10]
cmp ecx, edi
mov dword [esp + 0x34], eax
movzx esi, word [eax]
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42921b
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x34]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [edi], ax
mov eax, dword [esi]
movzx esi, word [edi + 2]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x14]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x429258
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x34]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [edi + 2], ax
mov eax, dword [esi]
movzx esi, word [edi + 4]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x18]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x429296
xor eax, eax
test esi, esi
cmovns eax, esi
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x5c]
mov word [esi + 4], ax
mov eax, 1
mov edi, dword [ebx]
movzx ebx, word [esi + 6]
mov esi, dword [edx + 0x1c]
mov ecx, dword [edi + 0x1c]
shl eax, cl
mov edi, eax
neg edi
inc edi
cmp esi, edi
lea ecx, [eax - 1]
cmovge edi, esi
cmp edi, ecx
cmovge edi, ecx
add ebx, edi
cmp eax, ebx
jle 0x4292d4
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x5c]
mov word [eax + 6], cx
mov ebx, dword [esi + edi*4]
mov edi, dword [esi]
mov ecx, dword [ebx + 8]
mov ebx, 1
lea eax, [eax + ecx*2]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
mov edi, dword [edx + 0x20]
cmp ecx, edi
mov dword [esp + 0x2c], eax
movzx esi, word [eax]
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x429322
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x2c]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [edi], ax
mov eax, dword [esi]
movzx esi, word [edi + 2]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x24]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42935f
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x2c]
mov ebx, 1
mov esi, dword [esp + 0x5c]
mov word [edi + 2], ax
mov eax, dword [esi]
movzx esi, word [edi + 4]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x28]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42939d
xor eax, eax
test esi, esi
cmovns eax, esi
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
mov word [esi + 4], ax
mov eax, 1
mov edi, dword [ebx]
movzx ebx, word [esi + 6]
mov esi, dword [edx + 0x2c]
mov ecx, dword [edi + 0x1c]
shl eax, cl
mov edi, eax
neg edi
inc edi
cmp esi, edi
lea ecx, [eax - 1]
cmovge edi, esi
cmp edi, ecx
cmovge edi, ecx
add ebx, edi
cmp eax, ebx
jle 0x4293db
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov esi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x5c]
mov eax, dword [esp + 0x40]
mov word [esi + 6], cx
mov ecx, dword [ebx]
mov edi, dword [ebx + eax*4]
mov ebx, 1
mov ecx, dword [ecx + 0x1c]
shl ebx, cl
mov eax, dword [edi + 8]
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x30]
cmp edi, ecx
mov dword [esp + 0x30], eax
movzx esi, word [esi + eax*2]
lea eax, [ebx - 1]
cmovge ecx, edi
cmp ecx, eax
cmovge ecx, eax
add esi, ecx
cmp ebx, esi
jle 0x429427
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
mov word [edi + ebx*2], ax
mov eax, dword [esi]
movzx esi, word [edi + ebx*2 + 2]
mov ebx, 1
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x34]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42946a
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
mov word [edi + ebx*2 + 2], ax
mov eax, dword [esi]
movzx esi, word [edi + ebx*2 + 4]
mov ebx, 1
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
mov ecx, dword [edx + 0x38]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x4294ae
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x5c]
mov word [edi + ebx*2 + 4], ax
mov eax, dword [esi]
movzx esi, word [edi + ebx*2 + 6]
mov ebx, 1
mov edx, dword [edx + 0x3c]
mov ecx, dword [eax + 0x1c]
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
cmp edx, ecx
lea eax, [ebx - 1]
cmovge ecx, edx
cmp ecx, eax
cmovge ecx, eax
add esi, ecx
cmp ebx, esi
jle 0x4294f2
xor eax, eax
test esi, esi
cmovns eax, esi
mov edx, edi
mov ecx, dword [esp + 0x30]
mov word [edx + ecx*2 + 6], ax
jmp 0x4298ea
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x4298ea
cmp dword [ebx + 0x18], 0
je 0x429526
cmp dword [esp + 0x24], 0
jle 0x429967
mov ebx, dword [esp + 0x5c]
add eax, 0x20
sar eax, 6
mov esi, dword [esp + 0x44]
mov edi, dword [ebx]
mov ebx, 1
movzx edx, word [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
cmp ecx, eax
lea esi, [ebx - 1]
cmovl ecx, eax
cmp ecx, esi
cmovge ecx, esi
add ecx, edx
cmp ebx, ecx
jle 0x429562
xor esi, esi
test ecx, ecx
cmovns esi, ecx
mov ebx, dword [esp + 0x44]
mov edx, 1
mov word [ebx], si
mov esi, dword [esp + 0x5c]
movzx ebx, word [ebx + 2]
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl edx, cl
mov esi, edx
neg esi
inc esi
cmp esi, eax
lea ecx, [edx - 1]
cmovl esi, eax
cmp esi, ecx
cmovge esi, ecx
add ebx, esi
cmp edx, ebx
jle 0x42959c
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov ebx, dword [esp + 0x44]
mov edx, 1
mov esi, dword [esp + 0x5c]
mov word [ebx + 2], cx
mov edi, dword [esi]
movzx ebx, word [ebx + 4]
mov ecx, dword [edi + 0x1c]
shl edx, cl
mov esi, edx
neg esi
inc esi
cmp esi, eax
lea ecx, [edx - 1]
cmovl esi, eax
cmp esi, ecx
cmovge esi, ecx
add ebx, esi
cmp edx, ebx
jle 0x4295d7
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov ebx, dword [esp + 0x44]
mov edx, 1
mov esi, dword [esp + 0x5c]
mov word [ebx + 4], cx
mov edi, dword [esi]
movzx ebx, word [ebx + 6]
mov ecx, dword [edi + 0x1c]
shl edx, cl
mov esi, edx
neg esi
inc esi
cmp esi, eax
lea ecx, [edx - 1]
cmovl esi, eax
cmp esi, ecx
cmovge esi, ecx
add ebx, esi
cmp edx, ebx
jle 0x429612
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
mov word [edx + 6], cx
mov ecx, dword [edi + esi*4]
mov edi, dword [edi]
mov ebx, dword [ecx + 8]
mov ecx, dword [edi + 0x1c]
lea edx, [edx + ebx*2]
mov ebx, 1
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
cmp ecx, eax
lea edi, [ebx - 1]
movzx esi, word [edx]
cmovl ecx, eax
cmp ecx, edi
cmovge ecx, edi
add ecx, esi
cmp ebx, ecx
jle 0x429659
xor edi, edi
test ecx, ecx
cmovns edi, ecx
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 2]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x42968f
xor edi, edi
test esi, esi
cmovns edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx + 2], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 4]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x4296c6
xor edi, edi
test esi, esi
cmovns edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx + 4], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 6]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x4296fd
xor edi, edi
test esi, esi
cmovns edi, esi
mov word [edx + 6], di
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x5c]
mov ecx, dword [edi + esi*4]
mov edi, dword [edi]
mov ebx, dword [ecx + 8]
mov ecx, dword [edi + 0x1c]
lea edx, [edx + ebx*2]
mov ebx, 1
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
cmp ecx, eax
lea edi, [ebx - 1]
movzx esi, word [edx]
cmovl ecx, eax
cmp ecx, edi
cmovge ecx, edi
add ecx, esi
cmp ebx, ecx
jle 0x429740
xor edi, edi
test ecx, ecx
cmovns edi, ecx
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 2]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x429776
xor edi, edi
test esi, esi
cmovns edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx + 2], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 4]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x4297ad
xor edi, edi
test esi, esi
cmovns edi, esi
mov esi, dword [esp + 0x5c]
mov ebx, 1
mov word [edx + 4], di
mov edi, dword [esi]
mov ecx, dword [edi + 0x1c]
shl ebx, cl
mov esi, ebx
neg esi
inc esi
cmp esi, eax
lea edi, [ebx - 1]
movzx ecx, word [edx + 6]
cmovl esi, eax
cmp esi, edi
cmovge esi, edi
add esi, ecx
cmp ebx, esi
jle 0x4297e4
xor edi, edi
test esi, esi
cmovns edi, esi
mov word [edx + 6], di
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x5c]
mov esi, dword [ecx + edi*4]
mov edi, dword [ecx]
mov ebx, dword [esi + 8]
mov dword [esp], ebx
mov ecx, dword [edi + 0x1c]
movzx esi, word [edx + ebx*2]
mov ebx, 1
shl ebx, cl
mov ecx, ebx
neg ecx
inc ecx
cmp ecx, eax
lea edi, [ebx - 1]
cmovl ecx, eax
cmp ecx, edi
cmovge ecx, edi
add ecx, esi
cmp ebx, ecx
mov ebx, dword [esp]
jle 0x42982b
xor edi, edi
test ecx, ecx
cmovns edi, ecx
mov word [edx + ebx*2], di
mov esi, 1
mov edi, dword [esp + 0x5c]
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x1c]
shl esi, cl
mov ecx, esi
neg ecx
inc ecx
cmp ecx, eax
lea edi, [esi - 1]
mov dword [esp + 4], edi
cmovl ecx, eax
cmp ecx, edi
cmovge ecx, edi
movzx edi, word [edx + ebx*2 + 2]
add ecx, edi
cmp esi, ecx
mov esi, dword [esp + 4]
jle 0x42986b
xor esi, esi
test ecx, ecx
cmovns esi, ecx
mov edi, dword [esp + 0x5c]
mov word [edx + ebx*2 + 2], si
mov esi, 1
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x1c]
shl esi, cl
mov ecx, esi
neg ecx
inc ecx
cmp ecx, eax
lea edi, [esi - 1]
mov dword [esp + 8], edi
cmovl ecx, eax
cmp ecx, edi
cmovge ecx, edi
movzx edi, word [edx + ebx*2 + 4]
add ecx, edi
cmp esi, ecx
mov esi, dword [esp + 8]
jle 0x4298ac
xor esi, esi
test ecx, ecx
cmovns esi, ecx
mov edi, dword [esp + 0x5c]
mov word [edx + ebx*2 + 4], si
mov esi, 1
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x1c]
shl esi, cl
mov edi, esi
neg edi
inc edi
cmp edi, eax
lea ecx, [esi - 1]
cmovge eax, edi
cmp eax, ecx
movzx edi, word [edx + ebx*2 + 6]
cmovge eax, ecx
add eax, edi
cmp esi, eax
jle 0x4298e5
xor ecx, ecx
test eax, eax
cmovns ecx, eax
mov word [edx + ebx*2 + 6], cx
mov eax, dword [esp + 0x44]
add eax, 8
mov dword [esp + 0x44], eax
cmp dword [esp + 0x48], 1
jne 0x429916
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
mov ecx, dword [eax + edx*4]
mov esi, dword [ecx + 8]
lea edi, [ebx + esi*8 - 0x10]
mov dword [esp + 0x44], edi
mov edx, dword [esp + 0x48]
inc edx
mov eax, dword [esp + 0x3c]
add eax, eax
mov dword [esp + 0x3c], eax
cmp edx, 4
mov dword [esp + 0x48], edx
jb 0x428d54
mov eax, dword [esp + 0x5c]
mov ebx, dword [esp + 0x40]
inc ebx
mov edx, dword [eax + 4]
cmp ebx, 2
mov ecx, dword [edx + 4]
mov dword [esp + 0x44], ecx
jb 0x428cf2
xor eax, eax
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 4
mov eax, 0xfffffff5
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 4
mov edx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x44]
mov esi, dword [edx]
movzx edx, word [ebx]
mov ebx, 1
mov ecx, dword [esi + 0x1c]
shl ebx, cl
mov edi, ebx
neg edi
inc edi
cmp eax, edi
lea ecx, [ebx - 1]
cmovge edi, eax
cmp edi, ecx
cmovge edi, ecx
add edx, edi
cmp ebx, edx
jle 0x42999d
xor ecx, ecx
test edx, edx
cmovns ecx, edx
mov eax, dword [esp + 0x44]
mov word [eax], cx
jmp 0x4298ea
mov eax, 0xfffffff2
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 4
mov eax, 0xfffffff8
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 4