Function at 0x42b5c0
Capabilities:
Enumerate pe sections

Disassembly:
push esi
push edi
push ebx
sub esp, 0x4c
mov ebx, dword [esp + 0x5c]
test ebx, ebx
je 0x42c772
mov edi, dword [ebx]
test edi, edi
je 0x42c772
mov esi, dword [ebx + 4]
test esi, esi
je 0x42c772
mov eax, dword [edi]
test eax, eax
je 0x42c772
cmp dword [edi + 4], 0
je 0x42c772
cmp dword [eax], 0
je 0x42c772
mov eax, dword [esi]
test eax, eax
je 0x42c772
cmp dword [esi + 4], 0
je 0x42c772
cmp dword [eax], 0
je 0x42c772
cmp dword [edi + 0x14], 0
je 0x42c772
cmp dword [esi + 0x14], 0
je 0x42c772
mov eax, dword [edi + 0x10]
test eax, eax
jl 0x42c722
mov edx, dword [edi + 0x1c]
lea ecx, [edx + edx*2]
lea edx, [ecx + ecx - 9]
cmp eax, edx
jg 0x42c722
mov eax, dword [esi + 0x10]
test eax, eax
jl 0x42c722
cmp eax, edx
jg 0x42c722
cmp dword [edi + 0xc], 0
jne 0x42b675
cmp dword [esi + 0xc], 0
je 0x42c717
test byte [edi + 0xc], 1
je 0x42b887
mov ecx, dword [edi + 0x10]
mov eax, 0x2aaaaaab
mov dword [esp], ecx
lea esi, [ecx + 3]
imul esi
sar esi, 0x1f
sub edx, esi
mov esi, dword [edi]
cmp dword [edi + 0x18], 0
mov eax, dword [esi]
mov dword [esp + 0x30], eax
je 0x42b6ac
cmp dword [esp], 0
jle 0x42b87d
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], eax
mov esi, dword [eax]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
lea ebx, [esi + edx]
sub esi, edx
add eax, ecx
sub ecx, dword [esp + 0x24]
lea edi, [ebx + eax]
sub ebx, eax
mov dword [esp + 0x18], ebx
mov ebx, esi
add esi, ecx
sub ebx, ecx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ebx
mov edi, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0x1c]
mov dword [esp + 0x2c], ecx
lea edx, [edi + eax]
sub edi, eax
mov eax, esi
lea esi, [ebx + ecx]
sub ebx, dword [esp + 0x2c]
lea ecx, [esi + edx]
sub edx, esi
mov esi, edi
sub esi, ebx
add ebx, edi
mov edi, dword [esp + 0x10]
add edi, ecx
mov dword [esp], edi
mov dword [eax], edi
mov edi, dword [esp + 0x18]
add edi, edx
mov dword [esp + 4], edi
mov dword [eax + 8], edi
mov edi, dword [esp + 0x14]
add edi, esi
mov dword [esp + 8], edi
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x28]
add edi, ebx
mov dword [esp + 0xc], edi
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x10]
sub edi, ecx
mov ecx, dword [esp + 0x18]
sub ecx, edx
mov edx, dword [esp + 0x14]
sub edx, esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], edx
sub esi, ebx
mov dword [eax + 0x14], edx
mov edx, dword [esp + 0x20]
cmp edx, 6
mov dword [esp + 0x10], edi
mov dword [eax + 4], edi
mov dword [esp + 0x18], ecx
mov dword [eax + 0xc], ecx
mov dword [eax + 0x1c], esi
mov ebx, dword [esp + 0x5c]
jge 0x42b81a
neg edx
mov ebx, dword [esp + 0x60]
mov edi, dword [esp]
imul edi, ebx
mov dword [esp + 0x28], esi
lea ecx, [edx + 5]
mov esi, 1
add edx, 6
shl esi, cl
mov ecx, edx
add edi, esi
sar edi, cl
mov dword [eax], edi
mov edi, dword [esp + 4]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 8], edi
mov edi, dword [esp + 8]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0xc]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x10]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 4], edi
mov edi, dword [esp + 0x18]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x14]
imul edi, ebx
imul ebx, dword [esp + 0x28]
add ebx, esi
add edi, esi
sar ebx, cl
mov dword [eax + 0x1c], ebx
mov ebx, dword [esp + 0x5c]
sar edi, cl
mov dword [eax + 0x14], edi
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi]
jmp 0x42b87d
mov edi, dword [eax]
add edx, 0x1a
mov esi, dword [esp + 0x60]
mov ecx, edx
imul edi, esi
shl edi, cl
mov dword [eax], edi
mov edi, dword [eax + 8]
imul edi, esi
shl edi, cl
mov dword [eax + 8], edi
mov edi, dword [eax + 0x10]
imul edi, esi
shl edi, cl
mov dword [eax + 0x10], edi
mov edi, dword [eax + 0x18]
imul edi, esi
shl edi, cl
mov dword [eax + 0x18], edi
mov edi, dword [eax + 4]
imul edi, esi
shl edi, cl
mov dword [eax + 4], edi
mov edi, dword [eax + 0xc]
imul edi, esi
shl edi, cl
mov dword [eax + 0xc], edi
mov edi, dword [eax + 0x14]
imul edi, esi
imul esi, dword [eax + 0x1c]
shl edi, cl
shl esi, cl
mov dword [eax + 0x14], edi
mov dword [eax + 0x1c], esi
mov eax, dword [ebx]
mov esi, dword [eax]
mov eax, dword [esi]
add eax, 0x20
mov dword [esi], eax
mov esi, dword [ebx + 4]
jmp 0x42b88f
mov dword [esp + 0x30], 0x10437be0
test byte [esi + 0xc], 1
je 0x42baa0
mov ecx, dword [esi + 0x10]
mov eax, 0x2aaaaaab
mov dword [esp], ecx
lea edi, [ecx + 3]
imul edi
sar edi, 0x1f
sub edx, edi
mov edi, dword [esi]
cmp dword [esi + 0x18], 0
mov eax, dword [edi]
mov dword [esp + 0x34], eax
je 0x42b8c6
cmp dword [esp], 0
jle 0x42ba99
mov dword [esp + 0x1c], eax
mov esi, dword [eax]
mov ecx, dword [eax + 8]
mov ebx, dword [eax + 0x10]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
lea edx, [esi + ecx]
sub esi, ecx
add eax, ebx
sub ebx, dword [esp + 0x24]
lea edi, [edx + eax]
sub edx, eax
mov dword [esp + 0x18], edx
mov edx, esi
add esi, ebx
sub edx, ebx
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], edx
mov edx, dword [esi + 4]
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x14]
mov ebx, dword [esi + 0x1c]
mov dword [esp + 0x2c], ebx
lea ecx, [eax + edx]
sub edx, eax
mov eax, esi
lea esi, [edi + ebx]
sub edi, dword [esp + 0x2c]
lea ebx, [ecx + esi]
sub ecx, esi
mov esi, edx
sub esi, edi
add edx, edi
mov edi, dword [esp + 0x10]
add edi, ebx
mov dword [esp], edi
mov dword [eax], edi
mov edi, dword [esp + 0x18]
add edi, ecx
mov dword [esp + 4], edi
mov dword [eax + 8], edi
mov edi, dword [esp + 0x14]
add edi, esi
mov dword [esp + 0xc], edi
mov dword [eax + 0x10], edi
mov edi, dword [esp + 0x28]
add edi, edx
mov dword [esp + 8], edi
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x10]
sub edi, ebx
mov ebx, dword [esp + 0x18]
sub ebx, ecx
mov ecx, dword [esp + 0x14]
sub ecx, esi
mov esi, dword [esp + 0x28]
sub esi, edx
mov edx, dword [esp + 0x20]
cmp edx, 6
mov dword [esp + 0x18], ebx
mov dword [eax + 0xc], ebx
mov dword [esp + 0x10], edi
mov dword [eax + 4], edi
mov dword [esp + 0x14], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x1c], esi
mov ebx, dword [esp + 0x5c]
jge 0x42ba35
neg edx
mov ebx, dword [esp + 0x64]
mov edi, dword [esp]
imul edi, ebx
mov dword [esp + 0x28], esi
lea ecx, [edx + 5]
mov esi, 1
add edx, 6
shl esi, cl
mov ecx, edx
add edi, esi
sar edi, cl
mov dword [eax], edi
mov edi, dword [esp + 4]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 8], edi
mov edi, dword [esp + 0xc]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0x10], edi
mov edi, dword [esp + 8]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0x18], edi
mov edi, dword [esp + 0x10]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 4], edi
mov edi, dword [esp + 0x18]
imul edi, ebx
add edi, esi
sar edi, cl
mov dword [eax + 0xc], edi
mov edi, dword [esp + 0x14]
imul edi, ebx
imul ebx, dword [esp + 0x28]
add ebx, esi
add edi, esi
sar ebx, cl
mov dword [eax + 0x1c], ebx
mov ebx, dword [esp + 0x5c]
sar edi, cl
mov dword [eax + 0x14], edi
mov eax, dword [ebx + 4]
mov edi, dword [eax]
mov eax, dword [edi]
jmp 0x42ba99
mov edi, dword [eax]
add edx, 0x1a
mov esi, dword [esp + 0x64]
mov ecx, edx
imul edi, esi
shl edi, cl
mov dword [eax], edi
mov edi, dword [eax + 8]
imul edi, esi
shl edi, cl
mov dword [eax + 8], edi
mov edi, dword [eax + 0x10]
imul edi, esi
shl edi, cl
mov dword [eax + 0x10], edi
mov edi, dword [eax + 0x18]
imul edi, esi
shl edi, cl
mov dword [eax + 0x18], edi
mov edi, dword [eax + 4]
imul edi, esi
shl edi, cl
mov dword [eax + 4], edi
mov edi, dword [eax + 0xc]
imul edi, esi
shl edi, cl
mov dword [eax + 0xc], edi
mov edi, dword [eax + 0x14]
imul edi, esi
imul esi, dword [eax + 0x1c]
shl edi, cl
shl esi, cl
mov dword [eax + 0x14], edi
mov dword [eax + 0x1c], esi
mov eax, dword [ebx + 4]
mov edi, dword [eax]
mov eax, dword [edi]
add eax, 0x20
mov dword [edi], eax
jmp 0x42baa8
mov dword [esp + 0x34], 0x10437be0
mov eax, dword [ebx]
xor esi, esi
movdqa xmm0, xmmword [0x1032d040]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x5c]
mov eax, 0x2aaaaaab
mov dword [esp + 0x48], 0
mov dword [esp + 0x40], esi
mov edx, dword [ebx + esi*4]
mov ebx, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
imul ebx
mov dword [esp + 0x1c], ebx
sar ebx, 0x1f
mov eax, dword [esp + esi*4 + 0x30]
sub edx, ebx
mov dword [esp + 0x38], eax
mov eax, edx
neg eax
mov ebx, 2
mov dword [esp + 8], edi
mov edi, 1
mov dword [esp + 0x3c], ebx
lea ecx, [edx + 0x1c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x20], edx
lea ecx, [eax + 3]
shl edi, cl
add eax, 4
mov dword [esp], eax
mov dword [esp + 4], 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 0x42c2c9
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 0x42bb57
cmp dword [esp + 0x1c], 0
jle 0x42bd34
cmp dword [esp + 0x20], 4
jge 0x42bc5f
mov eax, dword [esp + 8]
mov ebx, dword [esp + 4]
mov ecx, dword [esp]
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 0x42bd34
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
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 0x42bd5d
cmp dword [esp + 0x1c], 0
jle 0x42bea5
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 0x42bedb
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 0x42bf18
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 0x42bf56
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 0x42bf94
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 + 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 0x42bfe2
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 + 0x14]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42c01f
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 + 0x18]
cmp ecx, edi
lea eax, [ebx - 1]
cmovge edi, ecx
cmp edi, eax
cmovge edi, eax
add esi, edi
cmp ebx, esi
jle 0x42c05d
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 + 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 0x42c09b
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov eax, dword [esp + 0x2c]
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 + 0x24], 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 0x42c0e9
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x24]
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 0x42c126
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x24]
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 0x42c164
xor eax, eax
test esi, esi
cmovns eax, esi
mov esi, dword [esp + 0x24]
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 0x42c1a2
xor ecx, ecx
test ebx, ebx
cmovns ecx, ebx
mov esi, dword [esp + 0x24]
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 + 0x28], 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 0x42c1ee
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
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 0x42c231
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
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 0x42c275
xor eax, eax
test esi, esi
cmovns eax, esi
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
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 0x42c2b9
xor eax, eax
test esi, esi
cmovns eax, esi
mov edx, edi
mov ecx, dword [esp + 0x28]
mov word [edx + ecx*2 + 6], ax
jmp 0x42c6b3
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x48]
mov eax, dword [eax + edx*4]
test eax, eax
je 0x42c6b3
cmp dword [ebx + 0x18], 0
je 0x42c2ed
cmp dword [esp + 0x1c], 0
jle 0x42c730
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 0x42c329
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 0x42c363
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 0x42c39e
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 0x42c3d9
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 0x42c420
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 0x42c456
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 0x42c48d
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 0x42c4c4
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 0x42c507
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 0x42c53d
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 0x42c574
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 0x42c5ab
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 + 0x10], 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 + 0x10]
jle 0x42c5f4
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 + 0x14], 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 + 0x14]
jle 0x42c634
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 + 0x18], 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 + 0x18]
jle 0x42c675
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 0x42c6ae
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
test byte [esp + 0x48], 1
je 0x42c6df
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, 8
mov dword [esp + 0x48], edx
jb 0x42bb1c
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x40]
inc esi
mov edx, dword [eax + 4]
cmp esi, 2
mov ecx, dword [edx + 4]
mov dword [esp + 0x44], ecx
jb 0x42babb
xor eax, eax
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 0xc
mov eax, 0xfffffff5
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 0xc
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 0x42c766
xor ecx, ecx
test edx, edx
cmovns ecx, edx
mov eax, dword [esp + 0x44]
mov word [eax], cx
jmp 0x42c6b3
mov eax, 0xfffffff8
add esp, 0x4c
pop ebx
pop edi
pop esi
ret 0xc