Function at 0x435070
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x54
mov eax, dword [0x4f6e34]
xor eax, esp
mov dword [esp + 0x50], eax
imul edx, dword [ebp + 0x10], 0x1484
imul eax, dword [ebp + 0xc], 0x2908
add eax, edx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
lea ebx, [ecx + eax]
xor ecx, ecx
mov eax, dword [ebx + 0x12fc]
test eax, eax
jle 0x435154
xor edi, edi
xor esi, esi
mov edx, edi
add edi, dword [ebx + esi*4 + 0x1308]
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jge 0x435133
cmp dword [ebx + edx*4 + 0x900], 0
jne 0x43514b
inc edx
cmp edx, edi
jl 0x435124
jne 0x43514b
mov dword [ebx + esi*4 + 0x1200], 0xfffffffe
mov ecx, 0xfffffffe
mov eax, dword [ebx + 0x12fc]
inc esi
cmp esi, eax
jl 0x4350b9
mov edx, dword [ebx + 0x12e0]
cmp dword [ebx + 0x12e4], 0
jne 0x4352ae
test edx, edx
jne 0x4352c8
test eax, eax
jle 0x4352b2
cmp eax, 4
jl 0x43565d
mov edi, ebx
and edi, 0xf
mov esi, edi
neg esi
add esi, 0x10
shr esi, 2
test edi, edi
cmovne edi, esi
lea esi, [edi + 4]
cmp eax, esi
jl 0x43565d
mov esi, eax
sub esi, edi
and esi, 3
neg esi
add esi, eax
mov dword [esp + 0x10], esi
xor esi, esi
test edi, edi
jbe 0x4351eb
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov ecx, dword [esp]
mov edx, esi
mov eax, dword [ebx + ecx*4 + 0x1200]
or edx, eax
test eax, eax
cmovg esi, edx
inc ecx
cmp ecx, edi
jb 0x4351ca
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov eax, dword [esp + 0xc]
movd xmm1, esi
mov esi, dword [esp + 0x10]
pxor xmm0, xmm0
movdqu xmm3, xmmword [ebx + edi*4 + 0x1200]
add edi, 4
movdqa xmm2, xmm3
pcmpgtd xmm2, xmm0
pand xmm3, xmm2
por xmm1, xmm3
cmp edi, esi
jb 0x4351f7
movdqa xmm0, xmm1
psrldq xmm0, 8
por xmm1, xmm0
movdqa xmm2, xmm1
psrldq xmm2, 4
por xmm1, xmm2
mov dword [esp + 0x10], esi
movd esi, xmm1
cmp eax, dword [esp + 0x10]
jbe 0x435268
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov edi, dword [esp + 0x10]
mov ecx, esi
mov edx, dword [ebx + edi*4 + 0x1200]
or ecx, edx
test edx, edx
cmovg esi, ecx
inc edi
cmp edi, eax
jb 0x43524b
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
test esi, 1
jne 0x4352b2
test esi, esi
je 0x4352b2
test eax, eax
jle 0x43529f
xor edx, edx
mov ecx, dword [ebx + edx*4 + 0x1200]
test ecx, ecx
jle 0x435294
sar ecx, 1
mov dword [ebx + edx*4 + 0x1200], ecx
mov eax, dword [ebx + 0x12fc]
inc edx
cmp edx, eax
jl 0x43527a
mov edx, dword [ebx + 0x12e0]
mov dword [ebx + 0x12e4], 1
mov ecx, 1
test edx, edx
jne 0x4352c8
cmp dword [ebx + 0x12b4], 2
je 0x4352c8
mov eax, dword [ebp + 8]
cmp dword [eax + 0x50], 2
je 0x436572
mov eax, dword [ebp + 0x10]
xor edx, edx
shl eax, 4
add eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov dword [eax + 0x5220], edx
mov dword [eax + 0x5224], edx
mov dword [eax + 0x5228], edx
mov dword [eax + 0x522c], edx
cmp dword [esi + 0x50], 2
je 0x435d0f
mov eax, dword [ebx + 0x12fc]
test eax, eax
jle 0x435324
xor edx, edx
cmp dword [ebx + edx*4 + 0x1200], 0xfffffffe
jne 0x43531f
mov dword [ebx + edx*4 + 0x1200], 0
mov eax, dword [ebx + 0x12fc]
inc edx
cmp edx, eax
jl 0x435304
test ecx, ecx
je 0x43563d
mov edx, dword [ebp + 8]
cmp dword [edx + 0x50], 2
je 0x43579d
mov esi, dword [ebx + 0x12e0]
mov eax, 2
test esi, esi
cmovne esi, eax
pxor xmm0, xmm0
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xc], esi
movdqu xmmword [esp + 0x40], xmm0
lea edi, [esi + esi*2]
shl edi, 4
lea edx, [edx + ecx + 0x1200]
mov dword [esp + 0x30], edi
xor ecx, ecx
cmp dword [ebx + 0x12b4], 2
je 0x435674
mov dword [esp + 0x2c], edx
xor eax, eax
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov esi, dword [edx + ecx*4 + 0x48d6a0]
test esi, esi
jle 0x4354cb
cmp esi, 4
jl 0x43566d
mov edx, dword [esp + 0x2c]
lea edx, [edx + eax*4]
mov dword [esp + 0x10], edx
and edx, 0xf
je 0x4353c9
test dl, 3
jne 0x43566d
neg edx
add edx, 0x10
shr edx, 2
lea ebx, [edx + 4]
cmp esi, ebx
jl 0x43566d
mov ebx, esi
sub ebx, edx
and ebx, 3
neg ebx
add ebx, esi
test edx, edx
jbe 0x43542c
mov edi, dword [esp + ecx*4 + 0x40]
mov dword [esp], 0
mov dword [esp + 0x14], edi
mov dword [esp + 4], esi
mov dword [esp + 0x28], ecx
mov dword [esp + 8], eax
mov ecx, edi
mov esi, dword [esp]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + esi*4]
cmp eax, ecx
cmovge ecx, eax
inc esi
cmp esi, edx
jb 0x435407
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 4]
mov eax, dword [esp + 8]
mov dword [esp + ecx*4 + 0x40], edi
movd xmm0, dword [esp + ecx*4 + 0x40]
pshufd xmm0, xmm0, 0
mov edi, dword [esp + 0x10]
movdqu xmm1, xmmword [edi + edx*4]
add edx, 4
movdqa xmm2, xmm1
pxor xmm1, xmm0
pcmpgtd xmm2, xmm0
pand xmm2, xmm1
pxor xmm0, xmm2
cmp edx, ebx
jb 0x43543b
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
add eax, edx
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
sub edx, ebx
pxor xmm2, xmm1
sub eax, edx
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
movd dword [esp + ecx*4 + 0x40], xmm3
cmp ebx, esi
jae 0x4354cb
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + ecx*4 + 0x40]
lea edx, [edx + edi*4]
mov edi, dword [edx + ebx*4]
cmp edi, eax
cmovge eax, edi
inc ebx
cmp ebx, esi
jb 0x4354b4
mov dword [esp + ecx*4 + 0x40], eax
mov eax, dword [esp + 0x18]
add eax, ebx
inc ecx
cmp ecx, 4
jb 0x435388
mov ebx, dword [esp + 0x20]
xor eax, eax
mov edx, dword [esp + 0xc]
shl edx, 4
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 4], ecx
xor edi, edi
cmp ecx, dword [edx + 0x48f0c0]
mov ecx, 1
mov esi, dword [esp + 0x44]
cmovg edi, ecx
cmp esi, dword [edx + 0x48f0c4]
mov dword [esp + 0x20], ebx
mov ebx, eax
cmovg ebx, ecx
mov dword [esp], esi
mov esi, dword [esp + 0x48]
cmp esi, dword [edx + 0x48f0c8]
mov dword [esp + 8], esi
lea ecx, [edi + ebx]
mov esi, dword [esp + 0x4c]
lea ebx, [edi + ebx + 1]
cmovg ecx, ebx
cmp esi, dword [edx + 0x48f0cc]
mov edx, 1
mov ebx, dword [esp + 0x20]
cmovg eax, edx
add ecx, eax
mov eax, dword [esp + 0x10]
jne 0x43563d
shl eax, 4
mov ecx, dword [esp + 0x30]
mov edi, dword [esp]
mov esi, dword [esi*4 + 0x48f120]
mov dword [ebx + 0x1454], esi
lea edx, [eax + ecx + 0x48d6a0]
mov eax, dword [esp + 4]
mov dword [ebx + 0x1444], edx
mov edx, dword [edi*4 + 0x48f120]
mov ecx, dword [eax*4 + 0x48f120]
mov eax, dword [esp + 8]
mov dword [ebx + 0x1448], ecx
mov dword [ebx + 0x144c], edx
mov eax, dword [eax*4 + 0x48f120]
mov dword [ebx + 0x1450], eax
cmp dword [esp + 0xc], 0
je 0x4355d5
cmp dword [esp + 0xc], 2
jne 0x4355c3
lea eax, [ecx + ecx*2]
lea edx, [eax + edx + 0x1f4]
mov dword [ebx + 0x12b0], edx
jmp 0x4355e8
push 0x48f400
push dword [ebp + 8]
call fcn.0041fef0
add esp, 8
jmp 0x4355e8
lea ecx, [ecx + ecx*4]
add ecx, edx
lea eax, [esi + eax*4]
shl ecx, 4
add ecx, eax
mov dword [ebx + 0x12b0], ecx
mov ecx, dword [ebx + 0x1444]
mov edi, dword [ebx + 0x1448]
mov dword [ebx + 0x12ec], 0
imul edi, dword [ecx]
mov dword [ebx + 0x12ec], edi
mov eax, dword [ebx + 0x144c]
imul eax, dword [ecx + 4]
add edi, eax
mov dword [ebx + 0x12ec], edi
mov edx, dword [ebx + 0x1450]
imul edx, dword [ecx + 8]
add edi, edx
mov dword [ebx + 0x12ec], edi
mov esi, dword [ebx + 0x1454]
imul esi, dword [ecx + 0xc]
add edi, esi
mov dword [ebx + 0x12ec], edi
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], 0
xor ecx, esp
cmp ecx, dword [0x4f6e34]
jne 0x435668
add esp, 0x54
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor esi, esi
mov dword [esp + 0x10], esi
jmp 0x435239
call fcn.00466f40
xor ebx, ebx
jmp 0x4354a1
mov dword [esp + 0x2c], edx
xor esi, esi
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x30]
mov eax, 0x55555556
mov dword [esp + 4], esi
mov edi, dword [ebx + ecx*4 + 0x48d6b0]
imul edi
sar edi, 0x1f
sub edx, edi
mov dword [esp + 8], edx
test edx, edx
jle 0x43577e
mov eax, edx
shr eax, 1
mov dword [esp + 0x14], eax
je 0x435796
mov eax, dword [esp + 0x2c]
lea edi, [esi + esi*2]
xor ebx, ebx
mov edx, dword [esp + ecx*4 + 0x40]
lea eax, [eax + edi*4]
mov dword [esp + 0x10], eax
mov dword [esp], esi
mov dword [esp + 0x28], ecx
mov eax, ebx
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
mov ecx, dword [eax + edi + 0x14]
mov ebx, dword [eax + edi + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x24], ebx
mov ecx, dword [eax + edi + 0xc]
mov ebx, dword [eax + edi + 8]
mov esi, dword [eax + edi + 4]
mov edi, dword [eax + edi]
cmp edi, edx
cmovge edx, edi
add eax, 0x18
cmp esi, edx
cmovge edx, esi
cmp ebx, edx
mov esi, dword [esp + 0x24]
cmovge edx, ebx
cmp ecx, edx
mov ebx, dword [esp + 0x18]
cmovge edx, ecx
inc ebx
cmp esi, edx
mov ecx, dword [esp + 0x1c]
cmovge edx, esi
cmp ecx, edx
cmovge edx, ecx
cmp ebx, dword [esp + 0x14]
jb 0x4356d0
mov ecx, dword [esp + 0x28]
mov esi, dword [esp]
mov dword [esp + ecx*4 + 0x40], edx
lea esi, [esi + ebx*2]
lea ebx, [ebx + ebx + 1]
lea eax, [ebx - 1]
cmp eax, dword [esp + 8]
jae 0x43577e
mov esi, dword [esp + 4]
lea edi, [esi + ebx]
mov esi, dword [esp + 0x2c]
lea edi, [edi + edi*2]
mov eax, dword [esi + edi*4 - 4]
mov edx, dword [esi + edi*4 - 8]
mov esi, dword [esi + edi*4 - 0xc]
mov edi, dword [esp + ecx*4 + 0x40]
cmp esi, edi
cmovge edi, esi
cmp edx, edi
cmovge edi, edx
cmp eax, edi
cmovge edi, eax
mov eax, dword [esp + 4]
mov dword [esp + ecx*4 + 0x40], edi
lea esi, [ebx + eax]
inc ecx
cmp ecx, 4
jb 0x43567e
mov ebx, dword [esp + 0x20]
mov eax, 1
jmp 0x4354db
mov ebx, 1
jmp 0x43573d
mov ecx, dword [ebp + 0x14]
mov edx, dword [esp + 0x1c]
cmp dword [ebx + 0x12b4], 2
lea esi, [edx + ecx + 0x1200]
mov dword [esp + 0x14], esi
je 0x435cf3
mov dword [esp], 0x48f160
cmp dword [ebx + 0x12e0], 0
jne 0x43583f
mov edx, 0xb
mov ecx, dword [esi + edx*4]
cmp ecx, dword [edx*4 + 0x48d7c0]
jl 0x43583f
inc edx
cmp edx, 0x15
jl 0x4357d1
jne 0x43583f
movdqu xmm1, xmmword [ebx + 0x122c]
movdqu xmm3, xmmword [ebx + 0x123c]
movdqu xmm0, xmmword [0x48d7ec]
movdqu xmm2, xmmword [0x48d7fc]
mov edx, dword [0x48d80c]
psubd xmm1, xmm0
mov ecx, dword [0x48d810]
psubd xmm3, xmm2
mov dword [ebx + 0x12e0], 1
movdqu xmmword [ebx + 0x122c], xmm1
movdqu xmmword [ebx + 0x123c], xmm3
sub dword [ebx + 0x124c], edx
sub dword [ebx + 0x1250], ecx
mov edx, dword [ebx + 0x1304]
test edx, edx
jle 0x43596d
cmp edx, 4
jl 0x435cdf
mov edi, dword [esp + 0x14]
and edi, 0xf
je 0x435873
test edi, 3
jne 0x435cdf
neg edi
add edi, 0x10
shr edi, 2
lea ecx, [edi + 4]
cmp edx, ecx
jl 0x435cdf
mov esi, edx
xor ecx, ecx
sub esi, edi
and esi, 3
neg esi
add esi, edx
test edi, edi
jbe 0x4358c4
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edx, dword [esi + ebx*4]
cmp edx, ecx
cmovge ecx, edx
inc ebx
cmp ebx, edi
jb 0x4358ab
mov esi, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x20]
movd xmm0, ecx
pshufd xmm0, xmm0, 0
mov ecx, dword [esp + 0x14]
movdqu xmm1, xmmword [ecx + edi*4]
add edi, 4
movdqa xmm2, xmm1
pxor xmm1, xmm0
pcmpgtd xmm2, xmm0
pand xmm2, xmm1
pxor xmm0, xmm2
cmp edi, esi
jb 0x4358d1
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
movd ecx, xmm3
cmp esi, edx
jae 0x43594c
mov dword [esp + 0x20], ebx
mov edi, dword [esp + 0x14]
mov ebx, dword [edi + esi*4]
cmp ebx, ecx
cmovge ecx, ebx
inc esi
cmp esi, edx
jb 0x43593b
mov ebx, dword [esp + 0x20]
cmp esi, eax
jl 0x435979
mov eax, 0x186a0
xor edx, edx
test ecx, ecx
jle 0x435aea
cmp ecx, 8
jl 0x435b57
jmp 0x435bd4
test eax, eax
jle 0x435ae6
xor ecx, ecx
xor esi, esi
lea edx, [esi + 1]
sub eax, edx
inc eax
cmp eax, 4
jl 0x435ce8
mov edx, dword [esp + 0x14]
lea edx, [edx + esi*4]
mov dword [esp + 0xc], edx
and edx, 0xf
je 0x4359a9
test dl, 3
jne 0x435ce8
neg edx
add edx, 0x10
shr edx, 2
lea edi, [edx + 4]
cmp eax, edi
jl 0x435ce8
mov edi, eax
sub edi, edx
and edi, 3
neg edi
add edi, eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], 0
test edx, edx
jbe 0x435a0c
mov dword [esp + 0x10], 0
mov dword [esp + 4], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0xc]
mov eax, dword [edi + ebx*4]
cmp eax, esi
cmovge esi, eax
inc ebx
cmp ebx, edx
jb 0x4359ef
mov dword [esp + 0x18], esi
mov eax, dword [esp + 8]
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x20]
movd xmm0, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
pshufd xmm0, xmm0, 0
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0xc]
movdqu xmm1, xmmword [edi + edx*4]
add edx, 4
movdqa xmm2, xmm1
pxor xmm1, xmm0
pcmpgtd xmm2, xmm0
pand xmm2, xmm1
pxor xmm0, xmm2
cmp edx, ebx
jb 0x435a23
movdqa xmm1, xmm0
movdqa xmm2, xmm0
psrldq xmm1, 8
pcmpgtd xmm2, xmm1
pxor xmm0, xmm1
pand xmm2, xmm0
pxor xmm2, xmm1
movdqa xmm0, xmm2
movdqa xmm3, xmm2
psrldq xmm0, 4
pcmpgtd xmm3, xmm0
pxor xmm2, xmm0
pand xmm3, xmm2
pxor xmm3, xmm0
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x20]
movd edx, xmm3
cmp eax, dword [esp + 0x1c]
jbe 0x435aaf
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], ebx
lea esi, [edi + esi*4]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esi + edi*4]
cmp ebx, edx
cmovge edx, ebx
inc edi
cmp edi, eax
jb 0x435a9e
mov ebx, dword [esp + 0x20]
mov eax, 0x186a0
test ecx, ecx
jg 0x435b4a
test edx, edx
jle 0x435aea
cmp edx, 2
jl 0x435b08
cmp edx, 4
jl 0x435b1e
cmp edx, 8
jl 0x435b34
cmp ecx, 8
jge 0x435bd4
cmp ecx, 2
jl 0x435b94
jmp 0x435bb4
xor ecx, ecx
xor edx, edx
mov esi, dword [esp]
mov eax, 0x186a0
mov esi, dword [esi]
cmp esi, 0x186a0
jge 0x435b08
mov dword [ebx + 0x12b0], 0
mov eax, esi
mov esi, dword [esp]
mov esi, dword [esi + 4]
cmp eax, esi
jle 0x435b1e
mov dword [ebx + 0x12b0], 1
mov eax, esi
mov esi, dword [esp]
mov esi, dword [esi + 8]
cmp eax, esi
jle 0x435b34
mov dword [ebx + 0x12b0], 2
mov eax, esi
mov esi, dword [esp]
mov esi, dword [esi + 0xc]
cmp eax, esi
jle 0x435b4a
mov dword [ebx + 0x12b0], 3
mov eax, esi
cmp ecx, 8
jge 0x435bd4
test edx, edx
jg 0x435b74
mov esi, dword [esp]
mov esi, dword [esi + 0x10]
cmp eax, esi
jle 0x435b6d
mov dword [ebx + 0x12b0], 4
mov eax, esi
cmp ecx, 2
jl 0x435b7e
jmp 0x435bb4
cmp ecx, 2
jge 0x435bd4
cmp edx, 2
jge 0x435b94
mov esi, dword [esp]
mov esi, dword [esi + 0x14]
cmp eax, esi
jle 0x435b94
mov dword [ebx + 0x12b0], 5
mov eax, esi
cmp ecx, 2
jge 0x435bd4
cmp edx, 4
jge 0x435bb4
mov esi, dword [esp]
mov esi, dword [esi + 0x18]
cmp eax, esi
jle 0x435bb4
mov dword [ebx + 0x12b0], 6
mov eax, esi
cmp ecx, 2
jge 0x435bd4
cmp edx, 8
jge 0x435bd4
mov esi, dword [esp]
mov esi, dword [esi + 0x1c]
cmp eax, esi
jle 0x435bd4
mov dword [ebx + 0x12b0], 7
mov eax, esi
cmp ecx, 4
jge 0x435bf4
cmp edx, 2
jge 0x435bf4
mov esi, dword [esp]
mov esi, dword [esi + 0x20]
cmp eax, esi
jle 0x435bf4
mov dword [ebx + 0x12b0], 8
mov eax, esi
cmp ecx, 4
jge 0x435c14
cmp edx, 4
jge 0x435c14
mov esi, dword [esp]
mov esi, dword [esi + 0x24]
cmp eax, esi
jle 0x435c14
mov dword [ebx + 0x12b0], 9
mov eax, esi
cmp ecx, 4
jge 0x435c34
cmp edx, 8
jge 0x435c34
mov esi, dword [esp]
mov esi, dword [esi + 0x28]
cmp eax, esi
jle 0x435c34
mov dword [ebx + 0x12b0], 0xa
mov eax, esi
cmp ecx, 8
jge 0x435c54
cmp edx, 2
jge 0x435c54
mov esi, dword [esp]
mov esi, dword [esi + 0x2c]
cmp eax, esi
jle 0x435c54
mov dword [ebx + 0x12b0], 0xb
mov eax, esi
cmp ecx, 8
jge 0x435c74
cmp edx, 4
jge 0x435c74
mov esi, dword [esp]
mov esi, dword [esi + 0x30]
cmp eax, esi
jle 0x435c74
mov dword [ebx + 0x12b0], 0xc
mov eax, esi
cmp ecx, 8
jge 0x435c94
cmp edx, 8
jge 0x435c94
mov esi, dword [esp]
mov esi, dword [esi + 0x34]
cmp eax, esi
jle 0x435c94
mov dword [ebx + 0x12b0], 0xd
mov eax, esi
cmp ecx, 0x10
jge 0x435cb4
cmp edx, 4
jge 0x435cb4
mov esi, dword [esp]
mov esi, dword [esi + 0x38]
cmp eax, esi
jle 0x435cb4
mov dword [ebx + 0x12b0], 0xe
mov eax, esi
cmp ecx, 0x10
jge 0x435cd4
cmp edx, 8
jge 0x435cd4
mov edx, dword [esp]
mov edx, dword [edx + 0x3c]
cmp eax, edx
jle 0x435cd4
mov dword [ebx + 0x12b0], 0xf
mov eax, edx
mov dword [ebx + 0x12ec], eax
jmp 0x43563d
xor ecx, ecx
xor esi, esi
jmp 0x43592f
xor edx, edx
mov dword [esp + 0x1c], edx
jmp 0x435a89
cmp dword [ebx + 0x12b8], 0
mov edx, 0x48f1a0
mov ecx, 0x48f1e0
cmovne ecx, edx
mov dword [esp], ecx
jmp 0x43583f
cmp dword [ebp + 0xc], 1
jne 0x4352f8
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
cmp dword [edx + esi + 0x12b4], 2
je 0x4352f8
mov edx, dword [ebp + 0x14]
cmp dword [edx + esi + 0x3bbc], 2
je 0x4352f8
mov ecx, dword [ebp + 0x14]
pcmpeqd xmm2, xmm2
mov dword [esp + 0x20], ebx
mov dword [esp + 8], eax
lea edx, [esi + ecx + 0x2908]
mov dword [esp + 0x18], edx
mov ebx, edx
lea edx, [ecx + esi]
mov dword [esp + 0x10], edx
xor esi, esi
mov eax, dword [esi*4 + 0x48c9f4]
mov edx, eax
mov ecx, dword [esi*4 + 0x48c9f8]
cmp eax, ecx
jge 0x436567
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x10]
mov eax, dword [ebx + edx*4 + 0x1200]
cmp eax, dword [edi + edx*4 + 0x1200]
je 0x435d98
test eax, eax
jge 0x435da2
inc edx
cmp edx, dword [esi*4 + 0x48c9f8]
jl 0x435d84
mov eax, dword [esp + 0x14]
cmp edx, ecx
jne 0x435dea
mov edx, eax
neg edx
lea edx, [ecx + edx - 1]
lea edi, [edx + 1]
cmp edi, 0x18
jle 0x4364c5
lea edx, [edx*4 + 4]
push edx
push 0xff
lea eax, [ebx + eax*4 + 0x1200]
push eax
call fcn.00449a20
add esp, 0xc
mov eax, dword [esp + 8]
mov dword [eax + esi*4 + 0x5220], 1
inc esi
cmp esi, 4
jb 0x435d64
mov ebx, dword [esp + 0x20]
xor eax, eax
pxor xmm1, xmm1
pcmpeqd xmm2, xmm2
mov edx, dword [esp + 0x18]
movdqa xmm0, xmm1
nop word [eax + eax]
movdqu xmm3, xmmword [edx + eax*4 + 0x1200]
movdqa xmm4, xmm2
movdqa xmm5, xmm3
pcmpeqd xmm4, xmm3
pcmpgtd xmm5, xmm0
pxor xmm3, xmm0
pxor xmm4, xmm2
pand xmm5, xmm3
movdqa xmm6, xmm4
pxor xmm5, xmm0
add eax, 4
pand xmm5, xmm4
pandn xmm6, xmm0
movdqa xmm0, xmm5
psubd xmm1, xmm4
por xmm0, xmm6
cmp eax, 8
jb 0x435e10
movdqa xmm3, xmm0
movdqa xmm4, xmm0
psrldq xmm3, 8
movdqa xmm6, xmm1
pcmpgtd xmm4, xmm3
pxor xmm0, xmm3
pand xmm4, xmm0
pxor xmm4, xmm3
psrldq xmm6, 8
movdqa xmm0, xmm4
psrldq xmm0, 4
movdqa xmm5, xmm4
paddd xmm1, xmm6
pcmpgtd xmm5, xmm0
mov eax, dword [esp + 0x18]
pxor xmm4, xmm0
movdqa xmm7, xmm1
pand xmm5, xmm4
psrlq xmm7, 0x20
pxor xmm5, xmm0
paddd xmm1, xmm7
mov eax, dword [eax + 0x1220]
movd ecx, xmm5
movd dword [esp + 0x10], xmm1
cmp eax, 0xffffffff
je 0x435ecf
cmp eax, ecx
cmovge ecx, eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1224]
cmp eax, 0xffffffff
je 0x435ee7
cmp eax, ecx
cmovge ecx, eax
inc dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x1228]
cmp eax, 0xffffffff
je 0x435eff
cmp eax, ecx
cmovge ecx, eax
inc dword [esp + 0x10]
mov edx, dword [esp + 0x18]
lea edx, [edx + 0xc]
and edx, 0xf
mov eax, edx
neg eax
add eax, 0x10
shr eax, 2
test edx, edx
cmovne edx, eax
mov esi, edx
add esi, 0xfffffffa
jg 0x4364b2
mov eax, edx
neg eax
add eax, 2
and eax, 3
neg eax
add eax, 0xa
mov dword [esp + 0xc], eax
xor eax, eax
mov dword [esp + 8], eax
test edx, edx
jbe 0x435f7b
mov dword [esp], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 4], ecx
mov ebx, dword [esp]
mov esi, eax
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + ebx*4 + 0x122c]
cmp ecx, 0xffffffff
je 0x435f6a
cmp ecx, esi
cmovge esi, ecx
inc eax
inc ebx
cmp ebx, edx
jb 0x435f58
mov dword [esp + 8], esi
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 0x20]
movd xmm0, dword [esp + 8]
movd xmm1, eax
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0x18]
pshufd xmm0, xmm0, 0
nop dword [eax]
nop dword [eax]
movdqu xmm3, xmmword [esi + edx*4 + 0x122c]
movdqa xmm4, xmm2
movdqa xmm5, xmm3
pcmpeqd xmm4, xmm3
pcmpgtd xmm5, xmm0
pxor xmm3, xmm0
pand xmm5, xmm3
pxor xmm4, xmm2
pxor xmm5, xmm0
movdqa xmm6, xmm4
pand xmm5, xmm4
add edx, 4
pandn xmm6, xmm0
movdqa xmm0, xmm5
psubd xmm1, xmm4
por xmm0, xmm6
cmp edx, eax
jb 0x435fa0
movdqa xmm2, xmm0
movdqa xmm3, xmm0
psrldq xmm2, 8
movdqa xmm5, xmm1
pcmpgtd xmm3, xmm2
pxor xmm0, xmm2
pand xmm3, xmm0
pxor xmm3, xmm2
psrldq xmm5, 8
movdqa xmm0, xmm3
psrldq xmm0, 4
movdqa xmm4, xmm3
paddd xmm1, xmm5
pcmpgtd xmm4, xmm0
pxor xmm3, xmm0
movdqa xmm6, xmm1
pand xmm4, xmm3
psrlq xmm6, 0x20
pxor xmm4, xmm0
paddd xmm1, xmm6
mov dword [esp + 0xc], eax
movd dword [esp + 8], xmm4
movd dword [esp + 4], xmm1
cmp dword [esp + 0xc], 0xa
jae 0x436089
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 4]
mov ebx, dword [esp + 8]
mov esi, eax
mov edi, dword [esp + 0x18]
mov eax, dword [edi + esi*4 + 0x122c]
cmp eax, 0xffffffff
je 0x436077
cmp eax, ebx
cmovge ebx, eax
inc edx
inc esi
cmp esi, 0xa
jb 0x436065
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x20]
test ecx, ecx
jg 0x4360bc
cmp dword [esp + 8], 0
jg 0x4360bc
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0x24]
cmp dword [eax + edx + 0x3bf4], 0
jle 0x4360bc
mov edx, dword [ebp + 0x14]
xor eax, eax
mov esi, dword [esp + 0x24]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], eax
test ecx, ecx
jg 0x4360f0
cmp dword [esp + 8], 2
jge 0x4360f0
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 4]
cmp eax, dword [edx + esi + 0x3bf4]
jge 0x4360f0
mov edx, dword [ebp + 0x14]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 1
test ecx, ecx
jg 0x43612f
cmp dword [esp + 8], 4
jge 0x43612f
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax]
mov dword [esp], edx
cmp edx, dword [esi + edi + 0x3bf4]
jge 0x43612f
mov edx, dword [ebp + 0x14]
mov esi, edi
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 2
test ecx, ecx
jg 0x43616e
cmp dword [esp + 8], 8
jge 0x43616e
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
mov dword [esp], edx
cmp edx, dword [esi + edi + 0x3bf4]
jge 0x43616e
mov edx, dword [ebp + 0x14]
mov esi, edi
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 3
cmp ecx, 8
jge 0x4361ae
cmp dword [esp + 8], 0
jg 0x4361ae
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
mov dword [esp], edx
cmp edx, dword [esi + edi + 0x3bf4]
jge 0x4361ae
mov edx, dword [ebp + 0x14]
mov esi, edi
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 4
cmp ecx, 2
jge 0x4361f2
cmp dword [esp + 8], 2
jge 0x4361f2
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 0x14]
lea esi, [eax + edx]
mov eax, dword [esp + 0x24]
mov dword [esp], esi
cmp esi, dword [edi + eax + 0x3bf4]
jge 0x4361f2
mov edx, dword [ebp + 0x14]
mov esi, eax
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 5
cmp ecx, 2
jge 0x436236
cmp dword [esp + 8], 4
jge 0x436236
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 0x14]
lea esi, [eax + edx*2]
mov eax, dword [esp + 0x24]
mov dword [esp], esi
cmp esi, dword [edi + eax + 0x3bf4]
jge 0x436236
mov edx, dword [ebp + 0x14]
mov esi, eax
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 6
cmp ecx, 2
jge 0x43627a
cmp dword [esp + 8], 8
jge 0x43627a
mov eax, dword [esp + 4]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
add edx, dword [esp + 0x10]
mov dword [esp], edx
cmp edx, dword [esi + edi + 0x3bf4]
jge 0x43627a
mov edx, dword [ebp + 0x14]
mov esi, edi
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 7
cmp ecx, 4
jge 0x4362be
cmp dword [esp + 8], 2
jge 0x4362be
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 0x14]
lea esi, [eax + edx*2]
mov eax, dword [esp + 0x24]
mov dword [esp], esi
cmp esi, dword [edi + eax + 0x3bf4]
jge 0x4362be
mov edx, dword [ebp + 0x14]
mov esi, eax
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 8
cmp ecx, 4
jge 0x436304
cmp dword [esp + 8], 4
jge 0x436304
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov edi, dword [ebp + 0x14]
lea esi, [eax + edx]
mov eax, dword [esp + 0x24]
add esi, esi
mov dword [esp], esi
cmp esi, dword [edi + eax + 0x3bf4]
jge 0x436304
mov edx, dword [ebp + 0x14]
mov esi, eax
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 9
cmp ecx, 4
jge 0x436349
cmp dword [esp + 8], 8
jge 0x436349
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x10]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x14]
lea edi, [edx + esi*2]
mov edx, dword [esp + 0x24]
cmp edi, dword [eax + edx + 0x3bf4]
jge 0x436349
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, edi
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 0xa
cmp ecx, 8
jge 0x43638d
cmp dword [esp + 8], 2
jge 0x43638d
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
add edx, dword [esp + 4]
mov dword [esp], edx
cmp edx, dword [esi + edi + 0x3bf4]
jge 0x43638d
mov edx, dword [ebp + 0x14]
mov esi, edi
mov eax, dword [esp]
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 0xb
cmp ecx, 8
jge 0x4363d2
cmp dword [esp + 8], 4
jge 0x4363d2
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 4]
lea edx, [eax + eax*2]
mov eax, dword [ebp + 0x14]
lea edi, [edx + esi*2]
mov edx, dword [esp + 0x24]
cmp edi, dword [eax + edx + 0x3bf4]
jge 0x4363d2
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, edi
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 0xc
cmp ecx, 8
jge 0x436417
cmp dword [esp + 8], 8
jge 0x436417
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
lea esi, [eax + edx]
mov edx, dword [esp + 0x24]
mov eax, dword [ebp + 0x14]
lea edi, [esi + esi*2]
cmp edi, dword [eax + edx + 0x3bf4]
jge 0x436417
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, edi
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 0xd
cmp ecx, 0x10
jge 0x43645c
cmp dword [esp + 8], 4
jge 0x43645c
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x10]
lea edx, [eax + eax]
mov eax, dword [ebp + 0x14]
lea edi, [edx + esi*4]
mov edx, dword [esp + 0x24]
cmp edi, dword [eax + edx + 0x3bf4]
jge 0x43645c
mov edx, dword [ebp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, edi
mov dword [edx + esi + 0x3bf4], eax
mov dword [edx + esi + 0x3bb8], 0xe
cmp ecx, 0x10
jge 0x43649d
cmp dword [esp + 8], 8
jge 0x43649d
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
mov esi, dword [ebp + 0x14]
lea edx, [eax + eax*2]
lea eax, [edx + ecx*4]
cmp eax, dword [esi + edi + 0x3bf4]
jge 0x43649d
mov edx, dword [ebp + 0x14]
mov ecx, edi
mov dword [edx + ecx + 0x3bf4], eax
mov dword [edx + ecx + 0x3bb8], 0xf
mov eax, dword [ebx + 0x12fc]
test eax, eax
jle 0x43563d
xor ecx, ecx
jmp 0x435302
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
jmp 0x43604c
cmp edi, 4
jl 0x436563
lea edx, [ebx + eax*4]
mov dword [esp + 0xc], edx
and edx, 0xf
mov ecx, edx
neg ecx
add ecx, 0x10
shr ecx, 2
test edx, edx
cmovne edx, ecx
lea ecx, [edx + 4]
cmp edi, ecx
jl 0x436563
mov ecx, edi
sub ecx, edx
and ecx, 3
neg ecx
add ecx, edi
test edx, edx
jbe 0x436527
mov dword [esp], 0
mov dword [esp + 4], esi
mov ebx, dword [esp]
mov esi, dword [esp + 0xc]
mov dword [esi + ebx*4 + 0x1200], 0xffffffff
inc ebx
cmp ebx, edx
jb 0x43650f
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + 0xc]
pcmpeqd xmm0, xmm0
movdqu xmmword [ebx + edx*4 + 0x1200], xmm0
add edx, 4
cmp edx, ecx
jb 0x43652f
mov ebx, dword [esp + 0x18]
cmp ecx, edi
jae 0x435ddb
lea eax, [ebx + eax*4]
mov dword [eax + ecx*4 + 0x1200], 0xffffffff
inc ecx
cmp ecx, edi
jb 0x43654e
jmp 0x435ddb
xor ecx, ecx
jmp 0x436543
je 0x435ddb
jmp 0x435dea
mov eax, 0xb
mov edx, dword [ebx + eax*4 + 0x1200]
cmp edx, dword [eax*4 + 0x48d7c0]
jge 0x436590
cmp edx, 0xfffffffe
jne 0x4352c8
inc eax
cmp eax, 0x15
jl 0x436577
jne 0x4352c8
movdqu xmm3, xmmword [ebx + 0x122c]
movdqu xmm0, xmmword [0x48d7ec]
movdqu xmm5, xmmword [0x48d7fc]
pxor xmm4, xmm4
movdqa xmm1, xmm3
pcmpgtd xmm1, xmm4
movdqa xmm2, xmm1
pandn xmm2, xmm3
psubd xmm3, xmm0
movdqu xmm0, xmmword [ebx + 0x123c]
movdqa xmm6, xmm0
pand xmm3, xmm1
pcmpgtd xmm6, xmm4
por xmm3, xmm2
movdqa xmm7, xmm6
pandn xmm7, xmm0
psubd xmm0, xmm5
pand xmm0, xmm6
por xmm0, xmm7
mov edx, dword [ebx + 0x124c]
movdqu xmmword [ebx + 0x122c], xmm3
movdqu xmmword [ebx + 0x123c], xmm0
test edx, edx
jle 0x43661f
mov eax, dword [0x48d80c]
sub edx, eax
mov dword [ebx + 0x124c], edx
mov edx, dword [ebx + 0x1250]
test edx, edx
jle 0x436636
mov eax, dword [0x48d810]
sub edx, eax
mov dword [ebx + 0x1250], edx
mov dword [ebx + 0x12e0], 1
mov ecx, 1
jmp 0x4352c8