Function at 0x44dae1
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha
Hash data using murmur3

Disassembly:
mov edi, edi
push ebp
mov ecx, 0xfffffff
mov ebp, esp
sub esp, 0x94c
mov eax, dword [0x51b210]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, 0x400000
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 0x14]
cmp edi, ebx
mov dword [ebp - 0x37c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x340], eax
mov dword [ebp - 0x348], edi
jb 0x44f0f9
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp edi, eax
jae 0x44e586
mov esi, dword [0x4029b4]
and dword [ebp - 0x330], 0
sub edi, ebx
dec esi
js 0x44db93
mov eax, dword [ebp - 0x330]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x4a6228]
mov dword [ebp - 0x32c], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x44db7e
lea esi, [eax - 1]
jmp 0x44db8b
jbe 0x44dd0f
inc eax
mov dword [ebp - 0x330], eax
cmp esi, dword [ebp - 0x330]
jge 0x44db56
xor edx, edx
test edx, edx
je 0x44e580
mov eax, dword [edx]
mov esi, eax
and eax, ecx
mov edi, eax
shr esi, 0x1c
and esi, 7
lea esi, [esi + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], esi
sub dword [ebp - 0x344], ebx
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x348], esi
mov dword [ebp - 0x370], edi
mov dword [ebp - 0x334], ecx
je 0x44dc0f
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x334], 0x10
jne 0x44dbe6
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0xd78e6083
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x69c], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x6a0], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x334], eax
je 0x44e3ad
lea eax, [ebp - 0x6a0]
push eax
mov eax, 0xa6bede3c
mov edx, dword [0x402600]
mov esi, dword [ebp - 0x6a0]
mov edi, dword [ebp - 0x69c]
pop ecx
mov eax, 0xfffffff
and edi, eax
and esi, eax
xor ecx, ecx
mov eax, ebx
add esi, ebx
mov dword [ebp - 0x3a0], ecx
sub eax, edx
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x338], esi
mov dword [ebp - 0x380], eax
jne 0x44dd2d
cmp edi, ecx
mov dword [ebp - 0x338], ecx
jbe 0x44df7a
mov ecx, 0x82a003e
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + esi]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x338]
cmp dword [ebp - 0x338], edi
mov dword [ebp - 0x39c], eax
jb 0x44dcd2
jmp 0x44df7a
mov eax, dword [ebp - 0x32c]
mov edx, dword [eax]
shr edx, 1
and edx, 0x3f
mov eax, dword [eax + 4]
and eax, ecx
lea edx, [edx + eax + 0x400000]
jmp 0x44db95
mov edx, dword [0x40003c]
mov ecx, esi
sub ecx, ebx
lea eax, [esi + edi]
mov edi, ecx
mov esi, 0xfffff000
lea edx, [edx + 0x4000a0]
mov dword [ebp - 0x378], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x374], edx
mov edx, ecx
and edx, esi
sub edi, edx
mov dword [ebp - 0x330], edi
mov edi, dword [ebp - 0x32c]
add ecx, edi
mov edi, ecx
and edi, esi
sub ecx, edi
add eax, ebx
mov dword [ebp - 0x364], ecx
mov ecx, dword [ebp - 0x374]
mov esi, eax
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x360], ecx
je 0x44dd9d
cmp dword [esi], edx
jae 0x44dd9d
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x360]
jne 0x44dd8e
and dword [ebp - 0x358], 0
cmp esi, dword [ebp - 0x360]
je 0x44dde1
cmp dword [esi], edx
jne 0x44dde1
mov eax, dword [esi + 4]
sub eax, 8
shr eax, 1
je 0x44dde1
mov ecx, dword [ebp - 0x358]
movzx ecx, word [esi + ecx*2 + 8]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x330]
jae 0x44dde1
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x44ddba
mov ecx, 0x82a003e
cmp esi, dword [ebp - 0x360]
je 0x44df3b
cmp dword [esi], edi
ja 0x44df3b
mov eax, dword [esi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x358]
cmp eax, edx
jne 0x44de2c
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x360]
je 0x44df3b
cmp dword [esi], edi
ja 0x44df3b
and dword [ebp - 0x358], 0
jmp 0x44ddfa
cmp dword [esi], edi
jne 0x44de46
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x44df3b
mov eax, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [esi + eax*2 + 8], 0xf000
je 0x44dde6
lea eax, [esi + eax*2 + 8]
mov edx, dword [esi]
and dword [ebp - 0x330], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x374], eax
sub eax, dword [ebp - 0x338]
mov dword [ebp - 0x32c], eax
je 0x44decf
mov edx, dword [ebp - 0x338]
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edx]
add eax, ecx
mov edx, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x39c], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
jb 0x44de8b
mov eax, dword [ebp - 0x374]
mov eax, dword [eax]
sub eax, dword [ebp - 0x380]
and dword [ebp - 0x330], 0
mov dword [ebp - 0x6c8], eax
mov edx, ecx
mov eax, dword [ebp - 0x330]
movzx eax, byte [ebp + eax - 0x6c8]
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
inc dword [ebp - 0x330]
cmp dword [ebp - 0x330], 4
mov dword [ebp - 0x39c], eax
jb 0x44deea
mov eax, dword [ebp - 0x374]
add eax, 4
mov dword [ebp - 0x338], eax
jmp 0x44dde6
xor esi, esi
mov edi, dword [ebp - 0x378]
sub edi, dword [ebp - 0x338]
je 0x44df7a
mov edx, ecx
mov eax, dword [ebp - 0x338]
movzx eax, byte [eax + esi]
add eax, ecx
add dword [ebp - 0x3a0], eax
add eax, dword [ebp - 0x39c]
mul edx
add eax, edx
add dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], eax
inc esi
cmp esi, edi
jb 0x44df4b
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3a0]
mov byte [ebp + eax - 0x304], cl
inc eax
cmp eax, 0x10
jb 0x44df7e
mov eax, 0x4dbb7971
mov ecx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x304]
mov edx, dword [ebp - 0x2fc]
mov esi, dword [ebp - 0x2f8]
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x820], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x844], ecx
mov dword [ebp - 0x81c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x84c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x838], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x810], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x824], ecx
lea ecx, [ebp - 0x44]
sub eax, ecx
mov dword [ebp - 0x330], eax
mov eax, dword [ebp - 0x348]
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x840], edx
mov dword [ebp - 0x83c], esi
mov dword [ebp - 0x818], edx
mov dword [ebp - 0x814], esi
mov dword [ebp - 0x834], edi
mov dword [ebp - 0x830], edi
mov dword [ebp - 0x82c], edi
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x378], eax
push 0x10
lea edi, [ebp - 0x5d4]
lea esi, [ebp - 0x84c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x5a4]
mov eax, dword [ebp - 0x5c4]
mov ecx, dword [ebp - 0x5b4]
mov dword [ebp - 0x374], 3
mov edx, dword [ebp - 0x5d4]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x5d4], edx
mov edi, dword [ebp - 0x5c0]
mov edx, dword [ebp - 0x5d0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5b0], edx
mov edx, edi
mov edi, dword [ebp - 0x5b0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5a0], edx
mov edx, edi
mov edi, dword [ebp - 0x5a0]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5a0]
xor dword [ebp - 0x5d0], edi
mov edi, dword [ebp - 0x5d0]
add edx, edi
mov edi, dword [ebp - 0x5ac]
ror edx, 0xe
xor dword [ebp - 0x5c0], edx
mov edx, dword [ebp - 0x5bc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x59c], edx
mov edx, edi
mov edi, dword [ebp - 0x59c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5cc], edx
mov edx, edi
mov edi, dword [ebp - 0x5cc]
add edi, edx
mov edx, dword [ebp - 0x5cc]
rol edi, 0xd
xor dword [ebp - 0x5bc], edi
mov edi, dword [ebp - 0x5bc]
add edx, edi
mov edi, dword [ebp - 0x598]
ror edx, 0xe
xor dword [ebp - 0x5ac], edx
mov edx, dword [ebp - 0x5a8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5c8], edx
mov edx, edi
mov edi, dword [ebp - 0x5c8]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5b8], edx
mov edx, edi
mov edi, dword [ebp - 0x5b8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5b8]
xor dword [ebp - 0x5a8], edi
mov edi, dword [ebp - 0x5a8]
add edx, edi
mov edi, dword [ebp - 0x5d4]
ror edx, 0xe
xor dword [ebp - 0x598], edx
mov edx, dword [ebp - 0x5c8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5d0], edx
mov edx, edi
mov edi, dword [ebp - 0x5d0]
add edi, edx
mov edx, dword [ebp - 0x5d0]
rol edi, 9
xor dword [ebp - 0x5cc], edi
mov edi, dword [ebp - 0x5cc]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5cc]
xor dword [ebp - 0x5c8], edi
mov edi, dword [ebp - 0x5c8]
add edi, edx
mov edx, dword [ebp - 0x5c0]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x5d4], edi
rol edx, 7
xor dword [ebp - 0x5bc], edx
mov edi, dword [ebp - 0x5bc]
mov edx, dword [ebp - 0x5c0]
add edi, edx
mov edx, dword [ebp - 0x5bc]
rol edi, 9
xor dword [ebp - 0x5b8], edi
mov edi, dword [ebp - 0x5b8]
add edi, edx
mov edx, dword [ebp - 0x5b8]
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x5b0]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x5c0], edx
mov edx, dword [ebp - 0x5ac]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5a8], edx
mov edi, dword [ebp - 0x5a8]
mov edx, dword [ebp - 0x5ac]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x5a8]
xor ecx, edi
mov edi, dword [ebp - 0x59c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x5b0], edx
mov edx, dword [ebp - 0x5b0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x5ac], edx
mov edx, dword [ebp - 0x598]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x598]
add edx, esi
rol edx, 9
xor dword [ebp - 0x5a0], edx
mov edx, dword [ebp - 0x5a0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x59c], edx
mov edx, dword [ebp - 0x5a0]
mov edi, dword [ebp - 0x59c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x598], edi
dec dword [ebp - 0x374]
jne 0x44e074
mov dword [ebp - 0x5c4], eax
mov dword [ebp - 0x5a4], esi
xor eax, eax
mov dword [ebp - 0x5b4], ecx
mov ecx, dword [ebp + eax - 0x84c]
add dword [ebp + eax - 0x5d4], ecx
add eax, 4
cmp eax, 0x40
jl 0x44e2f8
inc dword [ebp - 0x82c]
lea edi, [ebp - 0x44]
lea esi, [ebp - 0x5d4]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x350], 0x40
jbe 0x44e376
mov edi, dword [ebp - 0x330]
mov eax, dword [ebp - 0x378]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
mov byte [ecx + edi], al
inc esi
cmp esi, 0x40
jb 0x44e33c
push 0x40
pop eax
sub dword [ebp - 0x350], eax
add dword [ebp - 0x334], eax
add edi, eax
add dword [ebp - 0x36c], eax
mov dword [ebp - 0x330], edi
jmp 0x44e047
cmp dword [ebp - 0x350], 0
jbe 0x44e3ad
mov edi, dword [ebp - 0x36c]
lea eax, [ebp - 0x44]
mov edx, dword [ebp - 0x334]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x44]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, dword [ebp - 0x350]
mov byte [ecx + edx], al
jb 0x44e392
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x44e462
call fcn.004fdc7b
mov ecx, 0xfffff000
mov esi, 0x4b3c5b
and eax, ecx
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x33c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x33c], 0x10
jne 0x44e3fd
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x378]
mov eax, dword [ebp - 0x37c]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
cmp edi, ebx
mov dword [ebp - 0x378], 0
jae 0x44e45b
mov ecx, dword [ebp - 0x378]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x44e44c
mov eax, esi
jmp 0x454967
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
sub ebx, eax
mov dword [ebp - 0x33c], edi
mov dword [ebp - 0x374], ebx
jne 0x44e48b
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x370]
sub esi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x344]
add eax, ecx
mov ecx, dword [0x4bebb0]
xor ebx, ebx
dec ecx
mov dword [ebp - 0x370], eax
js 0x44e4e7
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x44e4d8
lea ecx, [eax - 1]
jmp 0x44e4dd
jbe 0x44e4ef
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x44e4b6
mov edi, dword [ebp - 0x33c]
mov dword [ebp - 0x37c], ebx
jmp 0x44e55d
mov edi, dword [ebp - 0x33c]
mov dword [ebp - 0x37c], eax
jmp 0x44e55d
mov eax, dword [ebp - 0x37c]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x370]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x44e549
dec ecx
je 0x44e545
dec ecx
jne 0x44e551
mov edx, dword [ebp - 0x374]
jmp 0x44e551
mov edx, edi
jmp 0x44e551
mov edx, dword [ebp - 0x374]
sub edx, edi
dec eax
dec eax
jne 0x44e557
add dword [ebx], edx
inc dword [ebp - 0x37c]
mov eax, dword [ebp - 0x37c]
cmp eax, dword [0x4bebb0]
jb 0x44e4fd
mov eax, dword [0x4c7398]
mov eax, 0x964c9510
mov eax, dword [ebp - 0x340]
jmp 0x454967
mov edi, dword [ebp - 0x348]
cmp edi, ebx
jb 0x44f0f9
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x44f0f9
mov esi, dword [0x40336c]
mov edi, dword [ebp - 0x348]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x44e5fd
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x41abb8]
mov dword [ebp - 0x370], edx
mov edx, dword [edx]
shr edx, 1
and edx, ecx
cmp edi, edx
jae 0x44e5e8
lea esi, [eax - 1]
jmp 0x44e5f5
jbe 0x44e7b5
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x44e5bf
xor edx, edx
test edx, edx
je 0x44f0f9
mov eax, dword [edx]
mov esi, eax
shr eax, 1
and eax, ecx
shr esi, 0x1d
mov edi, eax
lea esi, [esi + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x32c], eax
mov eax, dword [0x4c7398]
mov dword [ebp - 0x344], esi
sub eax, edi
lea ecx, [eax + 1]
sub dword [ebp - 0x344], ebx
xor eax, eax
mov dword [ebp - 0x348], esi
test ecx, ecx
mov dword [ebp - 0x354], edi
mov dword [ebp - 0x33c], ecx
je 0x44e678
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x33c], 0x10
jne 0x44e64f
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x338], eax
mov eax, 0x369b18dd
mov eax, dword [ebp - 0x32c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6ac], eax
mov eax, dword [ebp - 0x338]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x6b0], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x334], esi
mov dword [ebp - 0x36c], eax
je 0x44ef24
lea eax, [ebp - 0x6b0]
push eax
mov eax, 0xde1dae54
mov edi, dword [0x402600]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x6ac]
and ecx, eax
mov edx, ecx
mov ecx, dword [ebp - 0x6b0]
and ecx, eax
xor esi, esi
mov eax, ebx
add ecx, ebx
mov dword [ebp - 0x3c0], esi
mov dword [ebp - 0x3bc], esi
sub eax, edi
mov dword [ebp - 0x33c], edx
mov dword [ebp - 0x340], ecx
mov dword [ebp - 0x380], eax
jne 0x44e7d3
mov dword [ebp - 0x330], esi
cmp edx, esi
jbe 0x44eae2
mov edi, 0x72122ba9
mov esi, 0x8dedd457
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x340]
mov edx, dword [ebp - 0x330]
movzx eax, byte [eax + edx]
sub eax, edi
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x33c]
jb 0x44e74b
jmp 0x44eae2
mov eax, dword [ebp - 0x370]
mov edx, dword [eax]
shr edx, 1
and edx, ecx
mov eax, dword [eax + 4]
and eax, 0x3f
lea edx, [edx + eax + 0x400000]
jmp 0x44e5ff
lea eax, [ecx + edx]
sub ecx, ebx
mov edi, ecx
mov edx, dword [0x40003c]
lea edx, [edx + 0x4000a0]
mov esi, ecx
mov dword [ebp - 0x374], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x370], edx
mov edx, 0xfffff000
and esi, edx
sub edi, esi
mov dword [ebp - 0x378], edi
mov edi, dword [ebp - 0x33c]
add ecx, edi
mov edi, ecx
and edi, edx
mov edx, dword [ebp - 0x370]
add eax, ebx
sub ecx, edi
mov dword [ebp - 0x364], ecx
add edx, eax
cmp eax, edx
mov ecx, eax
mov dword [ebp - 0x368], edi
mov dword [ebp - 0x360], edx
jmp 0x44e841
cmp dword [ecx], esi
jae 0x44e849
add ecx, dword [ecx + 4]
cmp ecx, edx
mov dword [ebp - 0x35c], ecx
jne 0x44e838
and dword [ebp - 0x358], 0
cmp ecx, edx
je 0x44e889
cmp dword [ecx], esi
jne 0x44e889
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x44e889
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x378]
jae 0x44e889
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x44e862
mov edi, 0x72122ba9
mov ecx, 0x7fffffff
mov esi, 0x8dedd457
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x44ea62
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x44ea62
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x44e8fa
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x44ea62
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x44ea62
and dword [ebp - 0x358], 0
jmp 0x44e8b8
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x44e926
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x44ea62
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x44e89e
lea edx, [eax + edx*2 + 8]
and dword [ebp - 0x330], 0
mov eax, dword [eax]
movzx edx, word [edx]
and edx, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x33c], eax
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x370], eax
je 0x44e9d5
mov edx, dword [ebp - 0x330]
mov eax, dword [ebp - 0x340]
movzx eax, byte [eax + edx]
mov edx, esi
sub eax, edi
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x370]
jb 0x44e970
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x380]
and dword [ebp - 0x330], 0
mov dword [ebp - 0x6cc], eax
mov edx, esi
mov eax, dword [ebp - 0x330]
movzx eax, byte [ebp + eax - 0x6cc]
sub eax, edi
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x330]
cmp dword [ebp - 0x330], 4
mov dword [ebp - 0x3bc], eax
jb 0x44e9f0
mov eax, dword [ebp - 0x33c]
add eax, 4
mov dword [ebp - 0x340], eax
jmp 0x44e898
mov eax, dword [ebp - 0x374]
and dword [ebp - 0x330], 0
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x370], eax
je 0x44eae2
mov edx, dword [ebp - 0x330]
mov eax, dword [ebp - 0x340]
movzx eax, byte [eax + edx]
sub eax, edi
add dword [ebp - 0x3c0], eax
add eax, dword [ebp - 0x3bc]
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3c0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3bc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x370]
jb 0x44ea7d
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3c0]
mov byte [ebp + eax - 0x2d4], cl
inc eax
cmp eax, 0x10
jb 0x44eae6
mov eax, 0x539b5720
mov ecx, dword [ebp - 0x2d0]
mov eax, dword [ebp - 0x2d4]
mov esi, dword [ebp - 0x2c8]
mov edx, dword [ebp - 0x2cc]
mov dword [ebp - 0x948], eax
mov dword [ebp - 0x920], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x944], ecx
mov dword [ebp - 0x91c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x94c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x938], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x910], eax
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x924], ecx
lea ecx, [ebp - 0x84]
sub eax, ecx
mov dword [ebp - 0x374], eax
mov eax, dword [ebp - 0x348]
sub eax, dword [ebp - 0x338]
mov dword [ebp - 0x940], edx
mov dword [ebp - 0x93c], esi
mov dword [ebp - 0x918], edx
mov dword [ebp - 0x914], esi
mov dword [ebp - 0x934], edi
mov dword [ebp - 0x930], edi
mov dword [ebp - 0x92c], edi
mov dword [ebp - 0x928], edi
mov dword [ebp - 0x370], eax
lea esi, [ebp - 0x94c]
lea edi, [ebp - 0x654]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x634]
mov eax, dword [ebp - 0x644]
mov esi, dword [ebp - 0x624]
mov dword [ebp - 0x33c], 2
mov edx, dword [ebp - 0x654]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x654], edx
mov edx, dword [ebp - 0x650]
mov edi, dword [ebp - 0x640]
add edx, edi
rol edx, 7
xor dword [ebp - 0x630], edx
mov edx, edi
mov edi, dword [ebp - 0x630]
add edx, edi
rol edx, 9
xor dword [ebp - 0x620], edx
mov edx, edi
mov edi, dword [ebp - 0x620]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x620]
xor dword [ebp - 0x650], edi
mov edi, dword [ebp - 0x650]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x62c]
xor dword [ebp - 0x640], edx
mov edx, dword [ebp - 0x63c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x61c], edx
mov edx, edi
mov edi, dword [ebp - 0x61c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x64c], edx
mov edx, edi
mov edi, dword [ebp - 0x64c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x64c]
xor dword [ebp - 0x63c], edi
mov edi, dword [ebp - 0x63c]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x618]
xor dword [ebp - 0x62c], edx
mov edx, dword [ebp - 0x628]
add edx, edi
rol edx, 7
xor dword [ebp - 0x648], edx
mov edx, edi
mov edi, dword [ebp - 0x648]
add edx, edi
rol edx, 9
xor dword [ebp - 0x638], edx
mov edx, edi
mov edi, dword [ebp - 0x638]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x638]
xor dword [ebp - 0x628], edi
mov edi, dword [ebp - 0x628]
add edx, edi
mov edi, dword [ebp - 0x654]
ror edx, 0xe
xor dword [ebp - 0x618], edx
mov edx, dword [ebp - 0x648]
add edx, edi
rol edx, 7
xor dword [ebp - 0x650], edx
mov edx, edi
mov edi, dword [ebp - 0x650]
add edi, edx
mov edx, dword [ebp - 0x650]
rol edi, 9
xor dword [ebp - 0x64c], edi
mov edi, dword [ebp - 0x64c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x64c]
xor dword [ebp - 0x648], edi
mov edi, dword [ebp - 0x648]
add edi, edx
mov edx, dword [ebp - 0x640]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x654], edi
rol edx, 7
xor dword [ebp - 0x63c], edx
mov edi, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x640]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x63c]
xor dword [ebp - 0x638], edi
mov edi, dword [ebp - 0x638]
add edi, edx
mov edx, dword [ebp - 0x638]
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x630]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x640], edx
mov edx, dword [ebp - 0x62c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x628], edx
mov edx, dword [ebp - 0x62c]
mov edi, dword [ebp - 0x628]
add edi, edx
mov edx, dword [ebp - 0x628]
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x61c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x630], edx
mov edx, dword [ebp - 0x630]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x62c], edx
mov edx, dword [ebp - 0x618]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x618]
add edx, esi
rol edx, 9
xor dword [ebp - 0x620], edx
mov edx, dword [ebp - 0x620]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x61c], edx
mov edi, dword [ebp - 0x61c]
mov edx, dword [ebp - 0x620]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x618], edi
dec dword [ebp - 0x33c]
jne 0x44ebdf
mov dword [ebp - 0x644], eax
mov dword [ebp - 0x624], esi
xor eax, eax
mov dword [ebp - 0x634], ecx
mov ecx, dword [ebp + eax - 0x94c]
add dword [ebp + eax - 0x654], ecx
add eax, 4
cmp eax, 0x40
jl 0x44ee63
lea esi, [ebp - 0x654]
inc dword [ebp - 0x92c]
lea edi, [ebp - 0x84]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x350], 0x40
jbe 0x44eee7
mov edi, dword [ebp - 0x374]
mov eax, dword [ebp - 0x370]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x84]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
mov byte [ecx + edi], al
cmp esi, 0x40
jb 0x44eeaa
push 0x40
pop eax
sub dword [ebp - 0x350], eax
add dword [ebp - 0x36c], eax
add edi, eax
add dword [ebp - 0x334], eax
mov dword [ebp - 0x374], edi
jmp 0x44ebb2
cmp dword [ebp - 0x350], 0
jbe 0x44ef24
mov edi, dword [ebp - 0x334]
mov edx, dword [ebp - 0x36c]
lea eax, [ebp - 0x84]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x84]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, dword [ebp - 0x350]
mov byte [ecx + edx], al
jb 0x44ef06
mov eax, dword [ebp - 0x32c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x44efdb
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
xor eax, eax
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x44ef74
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x370]
mov eax, dword [ebp - 0x37c]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x370], 0
mov eax, edi
cmp edi, ebx
jae 0x44e45b
mov ecx, dword [ebp - 0x370]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x44efc7
jmp 0x44e45b
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x338]
sub ebx, eax
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jne 0x44f004
test edi, edi
je 0x44f0e4
mov esi, dword [ebp - 0x338]
mov eax, dword [ebp - 0x354]
sub esi, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x4bebb0]
dec ecx
mov dword [ebp - 0x354], eax
js 0x44f060
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x44f051
lea ecx, [eax - 1]
jmp 0x44f056
jbe 0x44f068
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x44f02f
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x37c], ebx
jmp 0x44f0d6
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x37c], eax
jmp 0x44f0d6
mov eax, dword [ebp - 0x37c]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x354]
jae 0x44f0e4
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x44f0c2
dec ecx
je 0x44f0be
dec ecx
jne 0x44f0ca
mov edx, dword [ebp - 0x33c]
jmp 0x44f0ca
mov edx, edi
jmp 0x44f0ca
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x44f0d0
add dword [ebx], edx
inc dword [ebp - 0x37c]
mov eax, dword [ebp - 0x37c]
cmp eax, dword [0x4bebb0]
jb 0x44f076
mov eax, dword [0x4c7398]
mov eax, 0x575e5e56
mov eax, dword [ebp - 0x338]
jmp 0x454967
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x44fc0c
mov esi, dword [0x4642b8]
mov edi, dword [ebp - 0x348]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x44f173
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x483238]
mov dword [ebp - 0x354], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x44f15e
lea esi, [eax - 1]
jmp 0x44f16b
jbe 0x44f317
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x44f136
xor eax, eax
test eax, eax
je 0x44fc0c
mov edx, dword [eax + 4]
mov esi, dword [eax]
and edx, 7
shr esi, 1
and esi, ecx
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], edi
sub dword [ebp - 0x344], ebx
xor eax, eax
mov dword [ebp - 0x348], edi
mov dword [ebp - 0x374], esi
mov dword [ebp - 0x32c], ecx
test ecx, ecx
je 0x44f1ed
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x44f1c4
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push esi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0xe784622b
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6bc], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
mov dword [ebp - 0x6c0], ecx
mov byte [ebp - 0x325], 0
test esi, esi
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x338], eax
je 0x44fa43
lea eax, [ebp - 0x6c0]
push eax
mov eax, 0x8f290937
mov esi, dword [0x402600]
mov edi, dword [ebp - 0x6c0]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x6bc]
and ecx, eax
and edi, eax
xor edx, edx
mov eax, ebx
mov dword [ebp - 0x3b0], edx
add edi, ebx
mov dword [ebp - 0x3ac], edx
sub eax, esi
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x378], eax
jne 0x44f333
mov dword [ebp - 0x330], edx
cmp ecx, edx
jbe 0x44f618
mov ecx, 0x7fffffff
mov esi, 0x69bf6243
mov eax, dword [ebp - 0x330]
mov edx, esi
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
jb 0x44f2b3
jmp 0x44f618
mov eax, dword [ebp - 0x354]
mov edx, dword [eax + 4]
and edx, ecx
mov eax, dword [eax]
and eax, 0x3f
lea eax, [eax + edx + 0x400000]
jmp 0x44f175
mov edx, dword [0x40003c]
lea edx, [edx + 0x4000a0]
lea eax, [edi + ecx]
mov dword [ebp - 0x380], eax
mov eax, dword [edx]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
mov edx, dword [edx + 4]
mov dword [ebp - 0x354], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x370], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
mov dword [ebp - 0x368], esi
sub ecx, esi
add eax, ebx
mov esi, dword [ebp - 0x354]
mov dword [ebp - 0x364], ecx
mov ecx, eax
add esi, eax
mov dword [ebp - 0x360], esi
cmp eax, esi
jmp 0x44f3a6
cmp dword [ecx], edx
jae 0x44f3ae
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x35c], ecx
jne 0x44f39d
and dword [ebp - 0x358], 0
cmp ecx, esi
je 0x44f3ee
cmp dword [ecx], edx
jne 0x44f3ee
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x44f3ee
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x370]
jae 0x44f3ee
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x44f3c7
mov ecx, 0x7fffffff
mov esi, 0x69bf6243
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x44f5a2
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x44f5a2
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x44f45a
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x44f5a2
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x44f5a2
and dword [ebp - 0x358], 0
jmp 0x44f418
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x44f486
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x44f5a2
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x44f3fe
and dword [ebp - 0x330], 0
lea edx, [eax + edx*2 + 8]
movzx edx, word [edx]
mov eax, dword [eax]
and edx, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x44f52f
mov edx, esi
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
jb 0x44f4d0
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x378]
mov dword [ebp - 0x660], eax
xor edi, edi
mov edx, esi
movzx eax, byte [ebp + edi - 0x660]
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc edi
mov dword [ebp - 0x3ac], eax
cmp edi, 4
jb 0x44f545
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x44f3f8
mov eax, dword [ebp - 0x380]
and dword [ebp - 0x330], 0
sub eax, edi
mov dword [ebp - 0x354], eax
je 0x44f618
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
mov edx, esi
add eax, esi
add dword [ebp - 0x3b0], eax
add eax, dword [ebp - 0x3ac]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, esi
mul edx
add eax, edx
add dword [ebp - 0x3b0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x354]
jb 0x44f5b9
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3b0]
mov byte [ebp + eax - 0x314], cl
inc eax
cmp eax, 0x10
jb 0x44f61c
mov eax, 0xefe6f906
mov eax, dword [ebp - 0x314]
mov esi, dword [ebp - 0x308]
mov edx, dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x310]
mov dword [ebp - 0x788], eax
mov dword [ebp - 0x760], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x784], ecx
mov dword [ebp - 0x75c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x78c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x778], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x750], eax
lea eax, [ebp - 0x204]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x780], edx
mov dword [ebp - 0x77c], esi
mov dword [ebp - 0x758], edx
mov dword [ebp - 0x754], esi
mov dword [ebp - 0x774], edi
mov dword [ebp - 0x770], edi
mov dword [ebp - 0x76c], edi
mov dword [ebp - 0x768], edi
mov dword [ebp - 0x764], ecx
mov dword [ebp - 0x334], eax
lea edi, [ebp - 0x494]
lea esi, [ebp - 0x78c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x484]
mov ecx, dword [ebp - 0x474]
mov esi, dword [ebp - 0x464]
mov dword [ebp - 0x32c], 2
mov edx, dword [ebp - 0x494]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x494], edx
mov edi, dword [ebp - 0x480]
mov edx, dword [ebp - 0x490]
add edx, edi
rol edx, 7
xor dword [ebp - 0x470], edx
mov edx, edi
mov edi, dword [ebp - 0x470]
add edx, edi
rol edx, 9
xor dword [ebp - 0x460], edx
mov edx, edi
mov edi, dword [ebp - 0x460]
add edi, edx
mov edx, dword [ebp - 0x460]
rol edi, 0xd
xor dword [ebp - 0x490], edi
mov edi, dword [ebp - 0x490]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x46c]
xor dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x47c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x45c], edx
mov edx, edi
mov edi, dword [ebp - 0x45c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x48c], edx
mov edx, edi
mov edi, dword [ebp - 0x48c]
add edi, edx
mov edx, dword [ebp - 0x48c]
rol edi, 0xd
xor dword [ebp - 0x47c], edi
mov edi, dword [ebp - 0x47c]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x458]
xor dword [ebp - 0x46c], edx
mov edx, dword [ebp - 0x468]
add edx, edi
rol edx, 7
xor dword [ebp - 0x488], edx
mov edx, edi
mov edi, dword [ebp - 0x488]
add edx, edi
rol edx, 9
xor dword [ebp - 0x478], edx
mov edx, edi
mov edi, dword [ebp - 0x478]
add edi, edx
mov edx, dword [ebp - 0x478]
rol edi, 0xd
xor dword [ebp - 0x468], edi
mov edi, dword [ebp - 0x468]
add edx, edi
mov edi, dword [ebp - 0x494]
ror edx, 0xe
xor dword [ebp - 0x458], edx
mov edx, dword [ebp - 0x488]
add edx, edi
rol edx, 7
xor dword [ebp - 0x490], edx
mov edx, edi
mov edi, dword [ebp - 0x490]
add edi, edx
mov edx, dword [ebp - 0x490]
rol edi, 9
xor dword [ebp - 0x48c], edi
mov edi, dword [ebp - 0x48c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x48c]
xor dword [ebp - 0x488], edi
mov edi, dword [ebp - 0x488]
add edi, edx
mov edx, dword [ebp - 0x480]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x494], edi
rol edx, 7
xor dword [ebp - 0x47c], edx
mov edi, dword [ebp - 0x47c]
mov edx, dword [ebp - 0x480]
add edi, edx
mov edx, dword [ebp - 0x47c]
rol edi, 9
xor dword [ebp - 0x478], edi
mov edi, dword [ebp - 0x478]
add edi, edx
mov edx, dword [ebp - 0x478]
rol edi, 0xd
xor eax, edi
add edx, eax
mov edi, dword [ebp - 0x470]
ror edx, 0xe
xor dword [ebp - 0x480], edx
mov edx, dword [ebp - 0x46c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x468], edx
mov edx, dword [ebp - 0x46c]
mov edi, dword [ebp - 0x468]
add edi, edx
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x45c]
mov edx, dword [ebp - 0x468]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x470], edx
mov edx, dword [ebp - 0x470]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x46c], edx
mov edx, dword [ebp - 0x458]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x458]
add edx, esi
rol edx, 9
xor dword [ebp - 0x460], edx
mov edx, dword [ebp - 0x460]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x45c], edx
mov edi, dword [ebp - 0x45c]
mov edx, dword [ebp - 0x460]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x458], edi
dec dword [ebp - 0x32c]
jne 0x44f701
push 0x40
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x464], esi
mov dword [ebp - 0x474], ecx
pop edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x78c]
add dword [ebp + eax - 0x494], ecx
add eax, 4
cmp eax, edx
jl 0x44f988
lea esi, [ebp - 0x494]
mov eax, dword [ebp - 0x36c]
inc dword [ebp - 0x76c]
lea edi, [ebp - 0x204]
push 0x10
cmp eax, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x44fa0c
mov edi, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
sub edi, esi
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x44f9d2
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x350], edx
sub dword [ebp - 0x334], edx
jmp 0x44f6d4
test eax, eax
jbe 0x44fa43
mov ecx, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x32c], eax
lea edi, [ebp - 0x204]
sub edi, esi
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x44fa2c
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x44fafa
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
mov dword [eax + 8], esi
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x44fa93
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x354]
mov eax, dword [ebp - 0x37c]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x354], 0
mov eax, edi
jae 0x44e45b
mov ecx, dword [ebp - 0x354]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x44fae6
jmp 0x44e45b
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
sub ebx, eax
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jne 0x44fb23
test edi, edi
je 0x44e56b
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x374]
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
add eax, ecx
mov ecx, dword [0x4bebb0]
xor ebx, ebx
dec ecx
mov dword [ebp - 0x660], eax
js 0x44fb7f
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x44fb70
lea ecx, [eax - 1]
jmp 0x44fb75
jbe 0x44fb87
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x44fb4e
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x44fbf9
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x44fbf9
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x660]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x44fbe5
dec ecx
je 0x44fbe1
dec ecx
jne 0x44fbed
mov edx, dword [ebp - 0x33c]
jmp 0x44fbed
mov edx, edi
jmp 0x44fbed
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x44fbf3
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x44fb95
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x450760
mov esi, dword [0x492248]
mov edi, dword [ebp - 0x348]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x44fc85
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x419f48]
mov dword [ebp - 0x354], edx
mov edx, dword [edx]
and edx, ecx
cmp edi, edx
jae 0x44fc70
lea esi, [eax - 1]
jmp 0x44fc7d
jbe 0x44fe3b
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x44fc49
xor edx, edx
test edx, edx
je 0x450760
mov eax, dword [edx]
mov ecx, eax
shr eax, 4
shr ecx, 1
and ecx, 7
lea esi, [ecx + edx + 8]
mov edi, eax
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
mov dword [ebp - 0x344], esi
sub eax, edi
lea ecx, [eax + 1]
sub dword [ebp - 0x344], ebx
mov dword [ebp - 0x348], esi
xor eax, eax
mov dword [ebp - 0x374], edi
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x44fd01
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x44fcd8
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0x63b72f5e
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6a4], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x6a8], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x36c], edi
mov dword [ebp - 0x350], esi
mov dword [ebp - 0x338], eax
je 0x450597
lea eax, [ebp - 0x6a8]
push eax
mov eax, 0x7540bfc4
mov esi, dword [0x402600]
mov eax, 0xfffffff
mov edi, dword [ebp - 0x6a8]
pop ecx
mov ecx, dword [ebp - 0x6a4]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x390], edx
mov dword [ebp - 0x38c], edx
add edi, ebx
mov dword [ebp - 0x32c], ecx
sub eax, esi
mov dword [ebp - 0x378], eax
jne 0x44fe57
cmp ecx, edx
mov dword [ebp - 0x330], edx
jbe 0x45016c
mov ecx, 0x7fffffff
mov esi, 0x35592d4d
mov edx, 0xcaa6d2b3
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
mov dword [ebp - 0x38c], edx
jb 0x44fdc7
jmp 0x45016c
mov eax, dword [ebp - 0x354]
mov edx, dword [eax + 4]
and edx, 0x3f
mov eax, dword [eax]
and eax, ecx
lea edx, [edx + eax + 0x400000]
jmp 0x44fc87
lea eax, [edi + ecx]
mov edx, dword [0x40003c]
mov ecx, edi
lea edx, [edx + 0x4000a0]
sub ecx, ebx
mov dword [ebp - 0x380], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x354], edx
mov edx, ecx
and edx, 0xfffff000
mov esi, ecx
sub esi, edx
mov dword [ebp - 0x370], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
add eax, ebx
mov dword [ebp - 0x368], esi
mov esi, dword [ebp - 0x354]
add esi, eax
cmp eax, esi
mov dword [ebp - 0x364], ecx
mov dword [ebp - 0x360], esi
mov ecx, eax
jmp 0x44feca
cmp dword [ecx], edx
jae 0x44fed2
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x35c], ecx
jne 0x44fec1
and dword [ebp - 0x358], 0
cmp ecx, esi
je 0x44ff12
cmp dword [ecx], edx
jne 0x44ff12
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x44ff12
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x370]
jae 0x44ff12
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x44feeb
mov esi, 0x35592d4d
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x4500e6
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x4500e6
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x44ff7e
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x4500e6
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x4500e6
and dword [ebp - 0x358], 0
jmp 0x44ff3c
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x44ffaa
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x4500e6
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x44ff22
lea edx, [eax + edx*2 + 8]
and dword [ebp - 0x330], 0
movzx edx, word [edx]
and edx, 0xfff
mov eax, dword [eax]
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x450063
mov eax, dword [ebp - 0x330]
mov edx, 0xcaa6d2b3
movzx eax, byte [eax + edi]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
mov dword [ebp - 0x38c], edx
jb 0x44fff4
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x378]
mov dword [ebp - 0x65c], eax
xor edi, edi
movzx eax, byte [ebp + edi - 0x65c]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
mov edx, 0xcaa6d2b3
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc edi
mov dword [ebp - 0x38c], edx
cmp edi, 4
jb 0x450079
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x44ff1c
mov eax, dword [ebp - 0x380]
and dword [ebp - 0x330], 0
sub eax, edi
mov dword [ebp - 0x354], eax
je 0x45016c
mov edx, 0xcaa6d2b3
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
sub eax, esi
add dword [ebp - 0x390], eax
add eax, dword [ebp - 0x38c]
imul eax, eax, 0xcaa6d2b3
ror eax, 0x1d
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, eax
imul edx, edx, 0xd63d
rol edx, 3
ror eax, 3
xor edx, eax
add dword [ebp - 0x390], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x354]
mov dword [ebp - 0x38c], edx
jb 0x4500fd
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x390]
mov byte [ebp + eax - 0x2a4], cl
inc eax
cmp eax, 0x10
jb 0x450170
mov eax, 0x65d53415
mov edx, dword [ebp - 0x29c]
mov ecx, dword [ebp - 0x2a0]
mov eax, dword [ebp - 0x2a4]
mov esi, dword [ebp - 0x298]
mov dword [ebp - 0x888], eax
mov dword [ebp - 0x860], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x884], ecx
mov dword [ebp - 0x85c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x88c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x878], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x850], eax
lea eax, [ebp - 0x284]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x880], edx
mov dword [ebp - 0x87c], esi
mov dword [ebp - 0x858], edx
mov dword [ebp - 0x854], esi
mov dword [ebp - 0x874], edi
mov dword [ebp - 0x870], edi
mov dword [ebp - 0x86c], edi
mov dword [ebp - 0x868], edi
mov dword [ebp - 0x864], ecx
mov dword [ebp - 0x334], eax
lea edi, [ebp - 0x554]
push 0x10
lea esi, [ebp - 0x88c]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x544]
mov ecx, dword [ebp - 0x534]
mov esi, dword [ebp - 0x524]
mov dword [ebp - 0x32c], 3
mov edx, dword [ebp - 0x554]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x554], edx
mov edi, dword [ebp - 0x540]
mov edx, dword [ebp - 0x550]
add edx, edi
rol edx, 7
xor dword [ebp - 0x530], edx
mov edx, edi
mov edi, dword [ebp - 0x530]
add edx, edi
rol edx, 9
xor dword [ebp - 0x520], edx
mov edx, edi
mov edi, dword [ebp - 0x520]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x520]
xor dword [ebp - 0x550], edi
mov edi, dword [ebp - 0x550]
add edx, edi
mov edi, dword [ebp - 0x52c]
ror edx, 0xe
xor dword [ebp - 0x540], edx
mov edx, dword [ebp - 0x53c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x51c], edx
mov edx, edi
mov edi, dword [ebp - 0x51c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x54c], edx
mov edx, edi
mov edi, dword [ebp - 0x54c]
add edi, edx
mov edx, dword [ebp - 0x54c]
rol edi, 0xd
xor dword [ebp - 0x53c], edi
mov edi, dword [ebp - 0x53c]
add edx, edi
mov edi, dword [ebp - 0x518]
ror edx, 0xe
xor dword [ebp - 0x52c], edx
mov edx, dword [ebp - 0x528]
add edx, edi
rol edx, 7
xor dword [ebp - 0x548], edx
mov edx, edi
mov edi, dword [ebp - 0x548]
add edx, edi
rol edx, 9
xor dword [ebp - 0x538], edx
mov edx, edi
mov edi, dword [ebp - 0x538]
add edi, edx
mov edx, dword [ebp - 0x538]
rol edi, 0xd
xor dword [ebp - 0x528], edi
mov edi, dword [ebp - 0x528]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x554]
xor dword [ebp - 0x518], edx
mov edx, dword [ebp - 0x548]
add edx, edi
rol edx, 7
xor dword [ebp - 0x550], edx
mov edx, edi
mov edi, dword [ebp - 0x550]
add edi, edx
mov edx, dword [ebp - 0x550]
rol edi, 9
xor dword [ebp - 0x54c], edi
mov edi, dword [ebp - 0x54c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x54c]
xor dword [ebp - 0x548], edi
mov edi, dword [ebp - 0x548]
add edi, edx
mov edx, dword [ebp - 0x540]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x554], edi
rol edx, 7
xor dword [ebp - 0x53c], edx
mov edi, dword [ebp - 0x53c]
mov edx, dword [ebp - 0x540]
add edi, edx
mov edx, dword [ebp - 0x53c]
rol edi, 9
xor dword [ebp - 0x538], edi
mov edi, dword [ebp - 0x538]
add edi, edx
mov edx, dword [ebp - 0x538]
rol edi, 0xd
xor eax, edi
add edx, eax
ror edx, 0xe
mov edi, dword [ebp - 0x530]
xor dword [ebp - 0x540], edx
mov edx, dword [ebp - 0x52c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x528], edx
mov edi, dword [ebp - 0x528]
mov edx, dword [ebp - 0x52c]
add edi, edx
rol edi, 9
xor ecx, edi
mov edx, dword [ebp - 0x528]
add edx, ecx
mov edi, dword [ebp - 0x51c]
rol edx, 0xd
xor dword [ebp - 0x530], edx
mov edx, dword [ebp - 0x530]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x52c], edx
mov edx, dword [ebp - 0x518]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x518]
add edx, esi
rol edx, 9
xor dword [ebp - 0x520], edx
mov edx, dword [ebp - 0x520]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x51c], edx
mov edx, dword [ebp - 0x520]
mov edi, dword [ebp - 0x51c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x518], edi
dec dword [ebp - 0x32c]
jne 0x450255
push 0x40
mov dword [ebp - 0x544], eax
mov dword [ebp - 0x524], esi
mov dword [ebp - 0x534], ecx
pop edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x88c]
add dword [ebp + eax - 0x554], ecx
add eax, 4
cmp eax, edx
jl 0x4504dc
mov eax, dword [ebp - 0x36c]
lea edi, [ebp - 0x284]
lea esi, [ebp - 0x554]
inc dword [ebp - 0x86c]
push 0x10
cmp eax, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x450560
mov edi, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
sub edi, esi
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x450526
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x350], edx
sub dword [ebp - 0x334], edx
jmp 0x450228
test eax, eax
jbe 0x450597
lea edi, [ebp - 0x284]
mov esi, dword [ebp - 0x350]
sub edi, esi
mov ecx, dword [ebp - 0x338]
sub ecx, esi
mov dword [ebp - 0x32c], eax
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x450580
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x45064e
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
xor eax, eax
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x4505e7
xor edx, edx
div ecx
inc edx
mov ecx, dword [ebp - 0x354]
mov eax, dword [ebp - 0x37c]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x354], 0
mov eax, edi
jae 0x44e45b
mov ecx, dword [ebp - 0x354]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x45063a
jmp 0x44e45b
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
mov dword [ebp - 0x32c], edi
sub ebx, eax
mov dword [ebp - 0x33c], ebx
jne 0x450677
test edi, edi
je 0x44e56b
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x374]
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
add eax, ecx
mov ecx, dword [0x4bebb0]
mov dword [ebp - 0x65c], eax
xor ebx, ebx
dec ecx
js 0x4506d3
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x4506c4
lea ecx, [eax - 1]
jmp 0x4506c9
jbe 0x4506db
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x4506a2
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x45074d
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x45074d
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x65c]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x450739
dec ecx
je 0x450735
dec ecx
jne 0x450741
mov edx, dword [ebp - 0x33c]
jmp 0x450741
mov edx, edi
jmp 0x450741
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x450747
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x4506e9
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x4512a8
mov edi, dword [ebp - 0x348]
mov esi, dword [0x494558]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x4507da
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x4dc190]
mov dword [ebp - 0x354], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x4507c5
lea esi, [eax - 1]
jmp 0x4507d2
jbe 0x450987
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x45079d
xor edx, edx
test edx, edx
je 0x4512a8
mov eax, dword [edx]
mov ecx, eax
shr eax, 4
shr ecx, 1
mov edi, eax
and ecx, 7
lea esi, [ecx + edx + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x374], eax
mov eax, dword [0x4c7398]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], esi
sub dword [ebp - 0x344], ebx
mov dword [ebp - 0x348], esi
mov dword [ebp - 0x34c], edi
mov dword [ebp - 0x32c], ecx
xor eax, eax
test ecx, ecx
je 0x450856
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x45082d
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0xbe76d138
mov eax, dword [ebp - 0x374]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x684], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
mov dword [ebp - 0x688], ecx
mov byte [ebp - 0x325], 0
test edi, edi
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x338], eax
je 0x4510df
lea eax, [ebp - 0x688]
push eax
mov eax, 0x28c18d33
mov esi, dword [0x402600]
mov edi, dword [ebp - 0x688]
mov eax, 0xfffffff
pop ecx
mov ecx, dword [ebp - 0x684]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x398], edx
add edi, ebx
mov dword [ebp - 0x394], edx
sub eax, esi
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x378], eax
jne 0x4509a3
cmp ecx, edx
mov dword [ebp - 0x330], edx
jbe 0x450c9d
mov esi, 0x13023717
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
jb 0x45091c
jmp 0x450c9d
mov eax, dword [ebp - 0x354]
mov edx, dword [eax + 4]
and edx, ecx
mov eax, dword [eax]
and eax, 0x3f
lea edx, [edx + eax + 0x400000]
jmp 0x4507dc
mov edx, dword [0x40003c]
lea edx, [edx + 0x4000a0]
lea eax, [edi + ecx]
mov dword [ebp - 0x380], eax
mov ecx, edi
sub ecx, ebx
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x354], edx
mov esi, ecx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x370], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
add eax, ebx
mov dword [ebp - 0x368], esi
mov esi, dword [ebp - 0x354]
add esi, eax
mov dword [ebp - 0x364], ecx
cmp eax, esi
mov ecx, eax
mov dword [ebp - 0x360], esi
jmp 0x450a16
cmp dword [ecx], edx
jae 0x450a1e
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x35c], ecx
jne 0x450a0d
and dword [ebp - 0x358], 0
cmp ecx, esi
je 0x450a5e
cmp dword [ecx], edx
jne 0x450a5e
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x450a5e
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x370]
jae 0x450a5e
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x450a37
mov ecx, 0x7fffffff
mov esi, 0x13023717
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x450c20
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x450c20
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x450aca
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x450c20
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x450c20
and dword [ebp - 0x358], 0
jmp 0x450a88
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x450af6
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x450c20
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x450a6e
lea edx, [eax + edx*2 + 8]
and dword [ebp - 0x330], 0
movzx edx, word [edx]
mov eax, dword [eax]
and edx, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x450ba6
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
jb 0x450b40
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x378]
xor edi, edi
mov dword [ebp - 0x6c4], eax
movzx edx, byte [ebp + edi - 0x6c4]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc edi
cmp edi, 4
mov dword [ebp - 0x394], eax
jb 0x450bbc
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x450a68
mov eax, dword [ebp - 0x380]
and dword [ebp - 0x330], 0
sub eax, edi
mov dword [ebp - 0x354], eax
je 0x450c9d
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x398], edx
add edx, dword [ebp - 0x394]
mov eax, edx
imul eax, eax, 0x5858
rol eax, 9
ror edx, 9
xor eax, edx
mov edx, 0xecfdc8e9
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x398], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x394], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x354]
jb 0x450c37
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x398]
mov byte [ebp + eax - 0x2c4], cl
inc eax
cmp eax, 0x10
jb 0x450ca1
mov eax, 0x51d64ea0
mov ecx, dword [ebp - 0x2c0]
mov esi, dword [ebp - 0x2b8]
mov edx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2c4]
mov dword [ebp - 0x808], eax
mov dword [ebp - 0x7e0], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x804], ecx
mov dword [ebp - 0x7dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x80c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x7f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x7d0], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x7e4], ecx
lea ecx, [ebp - 0x104]
sub eax, ecx
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x348]
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x800], edx
mov dword [ebp - 0x7fc], esi
mov dword [ebp - 0x7d8], edx
mov dword [ebp - 0x7d4], esi
mov dword [ebp - 0x7f4], edi
mov dword [ebp - 0x7f0], edi
mov dword [ebp - 0x7ec], edi
mov dword [ebp - 0x7e8], edi
mov dword [ebp - 0x354], eax
lea esi, [ebp - 0x80c]
push 0x10
lea edi, [ebp - 0x594]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x584]
mov ecx, dword [ebp - 0x574]
mov esi, dword [ebp - 0x564]
mov dword [ebp - 0x32c], 2
mov edx, dword [ebp - 0x594]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x594], edx
mov edi, dword [ebp - 0x580]
mov edx, dword [ebp - 0x590]
add edx, edi
rol edx, 7
xor dword [ebp - 0x570], edx
mov edx, edi
mov edi, dword [ebp - 0x570]
add edx, edi
rol edx, 9
xor dword [ebp - 0x560], edx
mov edx, edi
mov edi, dword [ebp - 0x560]
add edi, edx
mov edx, dword [ebp - 0x560]
rol edi, 0xd
xor dword [ebp - 0x590], edi
mov edi, dword [ebp - 0x590]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x56c]
xor dword [ebp - 0x580], edx
mov edx, dword [ebp - 0x57c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x55c], edx
mov edx, edi
mov edi, dword [ebp - 0x55c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x58c], edx
mov edx, edi
mov edi, dword [ebp - 0x58c]
add edi, edx
mov edx, dword [ebp - 0x58c]
rol edi, 0xd
xor dword [ebp - 0x57c], edi
mov edi, dword [ebp - 0x57c]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x558]
xor dword [ebp - 0x56c], edx
mov edx, dword [ebp - 0x568]
add edx, edi
rol edx, 7
xor dword [ebp - 0x588], edx
mov edx, edi
mov edi, dword [ebp - 0x588]
add edx, edi
rol edx, 9
xor dword [ebp - 0x578], edx
mov edx, edi
mov edi, dword [ebp - 0x578]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x578]
xor dword [ebp - 0x568], edi
mov edi, dword [ebp - 0x568]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x594]
xor dword [ebp - 0x558], edx
mov edx, dword [ebp - 0x588]
add edx, edi
rol edx, 7
xor dword [ebp - 0x590], edx
mov edx, edi
mov edi, dword [ebp - 0x590]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x590]
xor dword [ebp - 0x58c], edi
mov edi, dword [ebp - 0x58c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x58c]
xor dword [ebp - 0x588], edi
mov edi, dword [ebp - 0x588]
add edi, edx
mov edx, dword [ebp - 0x580]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x594], edi
rol edx, 7
xor dword [ebp - 0x57c], edx
mov edx, dword [ebp - 0x580]
mov edi, dword [ebp - 0x57c]
add edi, edx
mov edx, dword [ebp - 0x57c]
rol edi, 9
xor dword [ebp - 0x578], edi
mov edi, dword [ebp - 0x578]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x578]
xor eax, edi
mov edi, dword [ebp - 0x570]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x580], edx
mov edx, dword [ebp - 0x56c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x568], edx
mov edi, dword [ebp - 0x568]
mov edx, dword [ebp - 0x56c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x568]
xor ecx, edi
mov edi, dword [ebp - 0x55c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x570], edx
mov edx, dword [ebp - 0x570]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x56c], edx
mov edx, dword [ebp - 0x558]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x558]
add edx, esi
rol edx, 9
xor dword [ebp - 0x560], edx
mov edx, dword [ebp - 0x560]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x55c], edx
mov edx, dword [ebp - 0x560]
mov edi, dword [ebp - 0x55c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x558], edi
dec dword [ebp - 0x32c]
jne 0x450d9a
mov dword [ebp - 0x584], eax
xor eax, eax
mov dword [ebp - 0x564], esi
mov dword [ebp - 0x574], ecx
mov ecx, dword [ebp + eax - 0x80c]
add dword [ebp + eax - 0x594], ecx
add eax, 4
cmp eax, 0x40
jl 0x45101e
lea esi, [ebp - 0x594]
inc dword [ebp - 0x7ec]
push 0x10
pop ecx
lea edi, [ebp - 0x104]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x350], 0x40
jbe 0x4510a2
mov eax, dword [ebp - 0x354]
mov edi, dword [ebp - 0x33c]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0x104]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
mov byte [ecx + edi], al
inc esi
cmp esi, 0x40
jb 0x451065
push 0x40
pop eax
sub dword [ebp - 0x350], eax
add dword [ebp - 0x338], eax
add edi, eax
add dword [ebp - 0x36c], eax
mov dword [ebp - 0x33c], edi
jmp 0x450d6d
cmp dword [ebp - 0x350], 0
jbe 0x4510df
mov edi, dword [ebp - 0x36c]
lea eax, [ebp - 0x104]
mov edx, dword [ebp - 0x338]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0x104]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, dword [ebp - 0x350]
mov byte [ecx + edx], al
jb 0x4510c1
mov eax, dword [ebp - 0x374]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x451196
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x354], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
xor eax, eax
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x45112f
xor edx, edx
div ecx
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x354]
inc edx
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x354], 0
jae 0x44e45b
mov ecx, dword [ebp - 0x354]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x451182
jmp 0x44e45b
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
mov eax, dword [0x402600]
mov dword [ebp - 0x32c], edi
sub ebx, eax
mov dword [ebp - 0x33c], ebx
jne 0x4511bf
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x344]
mov ecx, dword [ebp - 0x34c]
add eax, ecx
mov ecx, dword [0x4bebb0]
xor ebx, ebx
mov dword [ebp - 0x34c], eax
dec ecx
js 0x45121b
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x45120c
lea ecx, [eax - 1]
jmp 0x451211
jbe 0x451223
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x4511ea
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x451295
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x451295
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x34c]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x451281
dec ecx
je 0x45127d
dec ecx
jne 0x451289
mov edx, dword [ebp - 0x33c]
jmp 0x451289
mov edx, edi
jmp 0x451289
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x45128f
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x451231
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x451d46
mov edi, dword [ebp - 0x348]
mov esi, dword [0x4028dc]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x451322
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x49e390]
mov dword [ebp - 0x34c], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x45130d
lea esi, [eax - 1]
jmp 0x45131a
jbe 0x45149e
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x4512e5
xor eax, eax
test eax, eax
je 0x451d46
mov edx, dword [eax]
mov esi, dword [eax + 4]
shr edx, 1
and esi, ecx
and edx, 7
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
mov dword [ebp - 0x344], edi
sub eax, esi
sub dword [ebp - 0x344], ebx
mov dword [ebp - 0x348], edi
lea ecx, [eax + 1]
xor eax, eax
mov dword [ebp - 0x380], esi
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x45139c
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x451373
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push esi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0x905a75cf
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x674], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
test esi, esi
mov dword [ebp - 0x678], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x338], eax
je 0x451b7d
lea eax, [ebp - 0x678]
push eax
mov eax, 0x54b72372
mov eax, 0xfffffff
mov edi, dword [ebp - 0x678]
mov edx, dword [0x402600]
pop ecx
mov ecx, dword [ebp - 0x674]
and ecx, eax
and edi, eax
mov eax, ebx
xor esi, esi
mov dword [ebp - 0x3a8], esi
mov dword [ebp - 0x3a4], esi
add edi, ebx
sub eax, edx
mov dword [ebp - 0x32c], ecx
mov dword [ebp - 0x370], eax
jne 0x4514bd
cmp ecx, esi
jbe 0x451752
mov ecx, 0x48863bd6
movzx eax, byte [edi + esi]
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
mov edx, ecx
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
inc esi
cmp esi, dword [ebp - 0x32c]
mov dword [ebp - 0x3a4], edx
jb 0x451453
jmp 0x451752
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax]
shr edx, 2
mov eax, dword [eax + 4]
and edx, 0x3f
and eax, ecx
lea eax, [eax + edx + 0x400000]
jmp 0x451324
lea eax, [edi + ecx]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
mov edx, dword [0x40003c]
mov dword [ebp - 0x378], eax
lea edx, [edx + 0x4000a0]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x34c], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x354], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
mov dword [ebp - 0x364], ecx
add eax, ebx
mov ecx, dword [ebp - 0x34c]
mov dword [ebp - 0x368], esi
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x360], ecx
mov esi, eax
je 0x451536
cmp dword [esi], edx
jae 0x451536
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x360]
jne 0x451527
and dword [ebp - 0x358], 0
cmp esi, dword [ebp - 0x360]
je 0x45157a
cmp dword [esi], edx
jne 0x45157a
mov eax, dword [esi + 4]
sub eax, 8
shr eax, 1
je 0x45157a
mov ecx, dword [ebp - 0x358]
movzx ecx, word [esi + ecx*2 + 8]
and ecx, 0xfff
cmp ecx, dword [ebp - 0x354]
jae 0x45157a
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x451553
mov ecx, 0x48863bd6
cmp esi, dword [ebp - 0x360]
je 0x4516fa
mov eax, dword [esi]
cmp eax, dword [ebp - 0x368]
ja 0x4516fa
mov eax, dword [esi + 4]
lea edx, [eax - 8]
shr edx, 1
mov eax, dword [ebp - 0x358]
cmp eax, edx
jne 0x4515d1
add esi, dword [esi + 4]
cmp esi, dword [ebp - 0x360]
je 0x4516fa
mov eax, dword [ebp - 0x368]
cmp dword [esi], eax
ja 0x4516fa
and dword [ebp - 0x358], 0
jmp 0x451599
mov edx, dword [esi]
cmp edx, dword [ebp - 0x368]
jne 0x4515f1
movzx eax, word [esi + eax*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x4516fa
mov eax, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [esi + eax*2 + 8], 0xf000
je 0x45157f
and dword [ebp - 0x330], 0
lea eax, [esi + eax*2 + 8]
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x45168f
mov eax, dword [ebp - 0x330]
mov edx, ecx
movzx eax, byte [eax + edi]
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
mov dword [ebp - 0x3a4], edx
jb 0x451638
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x370]
mov dword [ebp - 0x668], eax
xor edi, edi
mov edx, ecx
movzx eax, byte [ebp + edi - 0x668]
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
mov dword [ebp - 0x3a4], edx
inc edi
cmp edi, 4
jb 0x4516a5
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x45157f
mov eax, dword [ebp - 0x378]
xor esi, esi
sub eax, edi
mov dword [ebp - 0x34c], eax
je 0x451752
movzx eax, byte [edi + esi]
mov edx, ecx
add eax, ecx
add dword [ebp - 0x3a8], eax
add eax, dword [ebp - 0x3a4]
imul eax, eax, 0x48863bd6
ror eax, 9
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0xede9
rol edx, 6
ror eax, 6
xor edx, eax
add dword [ebp - 0x3a8], edx
inc esi
cmp esi, dword [ebp - 0x34c]
mov dword [ebp - 0x3a4], edx
jb 0x45170c
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3a8]
mov byte [ebp + eax - 0x2e4], cl
inc eax
cmp eax, 0x10
jb 0x451756
mov eax, 0xd607c86e
mov esi, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x2e4]
mov ecx, dword [ebp - 0x2e0]
mov edx, dword [ebp - 0x2dc]
mov dword [ebp - 0x908], eax
mov dword [ebp - 0x8e0], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x904], ecx
mov dword [ebp - 0x8dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x90c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x8f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x8d0], eax
lea eax, [ebp - 0x184]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x900], edx
mov dword [ebp - 0x8fc], esi
mov dword [ebp - 0x8d8], edx
mov dword [ebp - 0x8d4], esi
mov dword [ebp - 0x8f4], edi
mov dword [ebp - 0x8f0], edi
mov dword [ebp - 0x8ec], edi
mov dword [ebp - 0x8e8], edi
mov dword [ebp - 0x8e4], ecx
mov dword [ebp - 0x334], eax
lea esi, [ebp - 0x90c]
push 0x10
pop ecx
lea edi, [ebp - 0x414]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x3e4]
mov eax, dword [ebp - 0x404]
mov ecx, dword [ebp - 0x3f4]
mov dword [ebp - 0x32c], 2
mov edx, dword [ebp - 0x414]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x414], edx
mov edx, dword [ebp - 0x410]
mov edi, dword [ebp - 0x400]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3f0], edx
mov edx, edi
mov edi, dword [ebp - 0x3f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x3e0], edx
mov edx, edi
mov edi, dword [ebp - 0x3e0]
add edi, edx
mov edx, dword [ebp - 0x3e0]
rol edi, 0xd
xor dword [ebp - 0x410], edi
mov edi, dword [ebp - 0x410]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x3ec]
xor dword [ebp - 0x400], edx
mov edx, dword [ebp - 0x3fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3dc], edx
mov edx, edi
mov edi, dword [ebp - 0x3dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x40c], edx
mov edx, edi
mov edi, dword [ebp - 0x40c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x40c]
xor dword [ebp - 0x3fc], edi
mov edi, dword [ebp - 0x3fc]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x3d8]
xor dword [ebp - 0x3ec], edx
mov edx, dword [ebp - 0x3e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x408], edx
mov edx, edi
mov edi, dword [ebp - 0x408]
add edx, edi
rol edx, 9
xor dword [ebp - 0x3f8], edx
mov edx, edi
mov edi, dword [ebp - 0x3f8]
add edi, edx
mov edx, dword [ebp - 0x3f8]
rol edi, 0xd
xor dword [ebp - 0x3e8], edi
mov edi, dword [ebp - 0x3e8]
add edx, edi
mov edi, dword [ebp - 0x414]
ror edx, 0xe
xor dword [ebp - 0x3d8], edx
mov edx, dword [ebp - 0x408]
add edx, edi
rol edx, 7
xor dword [ebp - 0x410], edx
mov edx, edi
mov edi, dword [ebp - 0x410]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x410]
xor dword [ebp - 0x40c], edi
mov edi, dword [ebp - 0x40c]
add edi, edx
mov edx, dword [ebp - 0x40c]
rol edi, 0xd
xor dword [ebp - 0x408], edi
mov edi, dword [ebp - 0x408]
add edi, edx
mov edx, dword [ebp - 0x400]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x414], edi
rol edx, 7
xor dword [ebp - 0x3fc], edx
mov edi, dword [ebp - 0x3fc]
mov edx, dword [ebp - 0x400]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x3fc]
xor dword [ebp - 0x3f8], edi
mov edi, dword [ebp - 0x3f8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x3f8]
xor eax, edi
add edx, eax
mov edi, dword [ebp - 0x3f0]
ror edx, 0xe
xor dword [ebp - 0x400], edx
mov edx, dword [ebp - 0x3ec]
add edx, edi
rol edx, 7
xor dword [ebp - 0x3e8], edx
mov edi, dword [ebp - 0x3e8]
mov edx, dword [ebp - 0x3ec]
add edi, edx
rol edi, 9
xor ecx, edi
mov edx, dword [ebp - 0x3e8]
add edx, ecx
rol edx, 0xd
mov edi, dword [ebp - 0x3dc]
xor dword [ebp - 0x3f0], edx
mov edx, dword [ebp - 0x3f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x3ec], edx
mov edx, dword [ebp - 0x3d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x3d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x3e0], edx
mov edx, dword [ebp - 0x3e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x3dc], edx
mov edi, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3e0]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x3d8], edi
dec dword [ebp - 0x32c]
jne 0x45183b
push 0x40
mov dword [ebp - 0x404], eax
mov dword [ebp - 0x3e4], esi
mov dword [ebp - 0x3f4], ecx
pop edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x90c]
add dword [ebp + eax - 0x414], ecx
add eax, 4
cmp eax, edx
jl 0x451ac2
mov eax, dword [ebp - 0x36c]
inc dword [ebp - 0x8ec]
lea esi, [ebp - 0x414]
cmp eax, edx
push 0x10
pop ecx
lea edi, [ebp - 0x184]
rep movsd dword es:[edi], dword [esi]
jbe 0x451b46
mov edi, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
sub edi, esi
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x451b0c
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x350], edx
sub dword [ebp - 0x334], edx
jmp 0x45180e
test eax, eax
jbe 0x451b7d
mov ecx, dword [ebp - 0x338]
lea edi, [ebp - 0x184]
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x32c], eax
sub edi, esi
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x451b66
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x451c34
call fcn.004fdc7b
mov ecx, 0xfffff000
mov esi, 0x4b3c5b
and eax, ecx
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x451bcd
xor edx, edx
div ecx
mov eax, dword [ebp - 0x37c]
inc edx
mov ecx, dword [ebp - 0x34c]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov eax, edi
mov dword [ebp - 0x34c], 0
jae 0x44e45b
mov ecx, dword [ebp - 0x34c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x451c20
jmp 0x44e45b
mov edi, dword [ebp - 0x348]
mov eax, dword [0x402600]
sub edi, dword [ebp - 0x340]
mov dword [ebp - 0x32c], edi
sub ebx, eax
mov dword [ebp - 0x33c], ebx
jne 0x451c5d
test edi, edi
je 0x44e56b
mov eax, dword [ebp - 0x380]
mov esi, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x344]
sub esi, dword [ebp - 0x348]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x4bebb0]
mov dword [ebp - 0x668], eax
dec ecx
js 0x451cb9
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x451caa
lea ecx, [eax - 1]
jmp 0x451caf
jbe 0x451cc1
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x451c88
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x451d33
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x451d33
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x668]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x451d1f
dec ecx
je 0x451d1b
dec ecx
jne 0x451d27
mov edx, dword [ebp - 0x33c]
jmp 0x451d27
mov edx, edi
jmp 0x451d27
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x451d2d
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x451ccf
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x45289c
mov edi, dword [ebp - 0x348]
mov esi, dword [0x46bd24]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x451dc0
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x48b0e8]
mov dword [ebp - 0x34c], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x451dab
lea esi, [eax - 1]
jmp 0x451db8
jbe 0x451f6f
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x451d83
xor edx, edx
test edx, edx
je 0x45289c
mov eax, dword [edx]
mov esi, eax
shr eax, 1
and eax, ecx
shr esi, 0x1d
lea esi, [esi + edx + 8]
mov edi, eax
lea eax, [esi + edi]
mov dword [ebp - 0x374], eax
mov eax, dword [0x4c7398]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], esi
sub dword [ebp - 0x344], ebx
mov dword [ebp - 0x348], esi
mov dword [ebp - 0x380], edi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x451e3b
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x451e12
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0x202e945c
mov eax, dword [ebp - 0x374]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x68c], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
mov dword [ebp - 0x690], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x338], eax
test edi, edi
je 0x4526d3
lea eax, [ebp - 0x690]
push eax
mov eax, 0x47f3a854
mov esi, dword [0x402600]
mov edi, dword [ebp - 0x690]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x68c]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x3b8], edx
mov dword [ebp - 0x3b4], edx
mov dword [ebp - 0x32c], ecx
add edi, ebx
sub eax, esi
mov dword [ebp - 0x370], eax
jne 0x451f8e
mov dword [ebp - 0x330], edx
cmp ecx, edx
jbe 0x452291
mov ecx, 0x7fffffff
mov esi, 0x799186ea
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
mov edx, esi
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
mov dword [ebp - 0x3b4], edx
jb 0x451f01
jmp 0x452291
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax]
mov eax, dword [eax + 4]
shr edx, 2
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x400000]
jmp 0x451dc2
mov edx, dword [0x40003c]
lea eax, [edi + ecx]
mov ecx, edi
sub ecx, ebx
lea edx, [edx + 0x4000a0]
mov esi, ecx
mov dword [ebp - 0x378], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x34c], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x354], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
mov dword [ebp - 0x368], esi
mov esi, dword [ebp - 0x34c]
add eax, ebx
mov dword [ebp - 0x364], ecx
mov ecx, eax
add esi, eax
cmp eax, esi
mov dword [ebp - 0x360], esi
jmp 0x452001
cmp dword [ecx], edx
jae 0x452009
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x35c], ecx
jne 0x451ff8
and dword [ebp - 0x358], 0
cmp ecx, esi
je 0x452049
cmp dword [ecx], edx
jne 0x452049
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x452049
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x354]
jae 0x452049
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x452022
mov esi, 0x799186ea
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x452211
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x452211
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x4520b5
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x452211
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x452211
and dword [ebp - 0x358], 0
jmp 0x452073
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x4520e1
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x452211
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x452059
lea edx, [eax + edx*2 + 8]
and dword [ebp - 0x330], 0
movzx edx, word [edx]
and edx, 0xfff
mov eax, dword [eax]
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x452194
mov edx, esi
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
mov dword [ebp - 0x3b4], edx
jb 0x45212b
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x370]
mov dword [ebp - 0x670], eax
xor edi, edi
mov edx, esi
movzx eax, byte [ebp + edi - 0x670]
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc edi
cmp edi, 4
mov dword [ebp - 0x3b4], edx
jb 0x4521aa
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x452053
mov eax, dword [ebp - 0x378]
and dword [ebp - 0x330], 0
sub eax, edi
mov dword [ebp - 0x34c], eax
je 0x452291
mov eax, dword [ebp - 0x330]
movzx eax, byte [eax + edi]
mov edx, esi
add eax, esi
add dword [ebp - 0x3b8], eax
add eax, dword [ebp - 0x3b4]
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
mov edx, esi
mul edx
add eax, edx
mov edx, eax
imul edx, edx, 0x6d29
rol edx, 0xa
ror eax, 0xa
xor edx, eax
add dword [ebp - 0x3b8], edx
inc dword [ebp - 0x330]
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x34c]
mov dword [ebp - 0x3b4], edx
jb 0x452228
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3b8]
mov byte [ebp + eax - 0x294], cl
inc eax
cmp eax, 0x10
jb 0x452295
mov eax, 0xb7336048
mov ecx, dword [ebp - 0x290]
mov edx, dword [ebp - 0x28c]
mov esi, dword [ebp - 0x288]
mov eax, dword [ebp - 0x294]
mov dword [ebp - 0x748], eax
mov dword [ebp - 0x720], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x744], ecx
mov dword [ebp - 0x71c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x74c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x738], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x710], eax
mov eax, dword [ebp - 0x340]
mov dword [ebp - 0x724], ecx
lea ecx, [ebp - 0xc4]
sub eax, ecx
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x348]
sub eax, dword [ebp - 0x340]
mov dword [ebp - 0x740], edx
mov dword [ebp - 0x73c], esi
mov dword [ebp - 0x718], edx
mov dword [ebp - 0x714], esi
mov dword [ebp - 0x734], edi
mov dword [ebp - 0x730], edi
mov dword [ebp - 0x72c], edi
mov dword [ebp - 0x728], edi
mov dword [ebp - 0x34c], eax
push 0x10
lea edi, [ebp - 0x514]
pop ecx
lea esi, [ebp - 0x74c]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x4f4]
mov esi, dword [ebp - 0x4e4]
mov eax, dword [ebp - 0x504]
mov dword [ebp - 0x32c], 3
mov edx, dword [ebp - 0x514]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x514], edx
mov edi, dword [ebp - 0x500]
mov edx, dword [ebp - 0x510]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4f0], edx
mov edx, edi
mov edi, dword [ebp - 0x4f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4e0], edx
mov edx, edi
mov edi, dword [ebp - 0x4e0]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4e0]
xor dword [ebp - 0x510], edi
mov edi, dword [ebp - 0x510]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x4ec]
xor dword [ebp - 0x500], edx
mov edx, dword [ebp - 0x4fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4dc], edx
mov edx, edi
mov edi, dword [ebp - 0x4dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x50c], edx
mov edx, edi
mov edi, dword [ebp - 0x50c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x50c]
xor dword [ebp - 0x4fc], edi
mov edi, dword [ebp - 0x4fc]
add edx, edi
mov edi, dword [ebp - 0x4d8]
ror edx, 0xe
xor dword [ebp - 0x4ec], edx
mov edx, dword [ebp - 0x4e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x508], edx
mov edx, edi
mov edi, dword [ebp - 0x508]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4f8], edx
mov edx, edi
mov edi, dword [ebp - 0x4f8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4f8]
xor dword [ebp - 0x4e8], edi
mov edi, dword [ebp - 0x4e8]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x514]
xor dword [ebp - 0x4d8], edx
mov edx, dword [ebp - 0x508]
add edx, edi
rol edx, 7
xor dword [ebp - 0x510], edx
mov edx, edi
mov edi, dword [ebp - 0x510]
add edi, edx
mov edx, dword [ebp - 0x510]
rol edi, 9
xor dword [ebp - 0x50c], edi
mov edi, dword [ebp - 0x50c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x50c]
xor dword [ebp - 0x508], edi
mov edi, dword [ebp - 0x508]
add edi, edx
mov edx, dword [ebp - 0x500]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x514], edi
rol edx, 7
xor dword [ebp - 0x4fc], edx
mov edi, dword [ebp - 0x4fc]
mov edx, dword [ebp - 0x500]
add edi, edx
mov edx, dword [ebp - 0x4fc]
rol edi, 9
xor dword [ebp - 0x4f8], edi
mov edi, dword [ebp - 0x4f8]
add edi, edx
mov edx, dword [ebp - 0x4f8]
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x4f0]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x500], edx
mov edx, dword [ebp - 0x4ec]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4e8], edx
mov edx, dword [ebp - 0x4ec]
mov edi, dword [ebp - 0x4e8]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x4e8]
xor ecx, edi
mov edi, dword [ebp - 0x4dc]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x4f0], edx
mov edx, dword [ebp - 0x4f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x4ec], edx
mov edx, dword [ebp - 0x4d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x4d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x4e0], edx
mov edx, dword [ebp - 0x4e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x4dc], edx
mov edi, dword [ebp - 0x4dc]
mov edx, dword [ebp - 0x4e0]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x4d8], edi
dec dword [ebp - 0x32c]
jne 0x45238e
mov dword [ebp - 0x504], eax
xor eax, eax
mov dword [ebp - 0x4e4], esi
mov dword [ebp - 0x4f4], ecx
mov ecx, dword [ebp + eax - 0x74c]
add dword [ebp + eax - 0x514], ecx
add eax, 4
cmp eax, 0x40
jl 0x452612
lea edi, [ebp - 0xc4]
lea esi, [ebp - 0x514]
inc dword [ebp - 0x72c]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
xor esi, esi
cmp dword [ebp - 0x350], 0x40
jbe 0x452696
mov eax, dword [ebp - 0x34c]
mov edi, dword [ebp - 0x33c]
lea edx, [eax + edi]
lea ecx, [ebp + esi - 0xc4]
mov al, byte [ecx + edx]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, 0x40
mov byte [ecx + edi], al
jb 0x452659
push 0x40
pop eax
sub dword [ebp - 0x350], eax
add dword [ebp - 0x338], eax
add edi, eax
add dword [ebp - 0x36c], eax
mov dword [ebp - 0x33c], edi
jmp 0x452361
cmp dword [ebp - 0x350], 0
jbe 0x4526d3
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0x338]
mov edi, dword [ebp - 0x36c]
sub edi, eax
sub edx, eax
lea ecx, [ebp + esi - 0xc4]
mov al, byte [ecx + edi]
xor al, byte [ecx]
xor byte [ebp - 0x325], al
inc esi
cmp esi, dword [ebp - 0x350]
mov byte [ecx + edx], al
jb 0x4526b5
mov eax, dword [ebp - 0x374]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x45278a
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x3d4]
mov dword [eax + 8], esi
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
xor eax, eax
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x452723
xor edx, edx
div ecx
inc edx
cmp edi, ebx
mov ecx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x37c]
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x34c], 0
mov eax, edi
jae 0x44e45b
mov ecx, dword [ebp - 0x34c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x452776
jmp 0x44e45b
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
sub ebx, eax
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jne 0x4527b3
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x380]
add eax, ecx
mov ecx, dword [0x4bebb0]
mov dword [ebp - 0x670], eax
xor ebx, ebx
dec ecx
js 0x45280f
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x452800
lea ecx, [eax - 1]
jmp 0x452805
jbe 0x452817
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x4527de
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x452889
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x452889
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x670]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x452875
dec ecx
je 0x452871
dec ecx
jne 0x45287d
mov edx, dword [ebp - 0x33c]
jmp 0x45287d
mov edx, edi
jmp 0x45287d
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x452883
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x452825
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x45331f
mov edi, dword [ebp - 0x348]
mov esi, dword [0x4a0784]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x452916
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x49da00]
mov dword [ebp - 0x34c], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x452901
lea esi, [eax - 1]
jmp 0x45290e
jbe 0x452a94
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x4528d9
xor edx, edx
test edx, edx
je 0x45331f
mov eax, dword [edx]
mov esi, eax
and eax, ecx
shr esi, 0x1d
lea esi, [esi + edx + 8]
mov edi, eax
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
sub eax, edi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], esi
sub dword [ebp - 0x344], ebx
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x348], esi
mov dword [ebp - 0x380], edi
mov dword [ebp - 0x32c], ecx
je 0x45298f
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x452966
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push edi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0xdde765ca
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x694], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x698], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x36c], edi
mov dword [ebp - 0x350], esi
mov dword [ebp - 0x338], eax
je 0x453156
lea eax, [ebp - 0x698]
push eax
mov eax, 0x53bf6236
mov edi, dword [ebp - 0x698]
mov esi, dword [0x402600]
mov eax, 0xfffffff
pop ecx
mov ecx, dword [ebp - 0x694]
and ecx, eax
and edi, eax
xor edx, edx
add edi, ebx
mov dword [ebp - 0x388], edx
mov eax, ebx
mov dword [ebp - 0x384], edx
mov dword [ebp - 0x334], ecx
sub eax, esi
mov dword [ebp - 0x370], eax
jne 0x452ab2
cmp ecx, edx
jbe 0x452d33
mov esi, 0x2f8c177
movzx ecx, byte [edx + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc edx
cmp edx, dword [ebp - 0x334]
mov dword [ebp - 0x384], eax
jb 0x452a46
jmp 0x452d33
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax]
shr edx, 1
mov eax, dword [eax + 4]
and edx, 0x3f
and eax, ecx
lea edx, [edx + eax + 0x400000]
jmp 0x452918
mov edx, dword [0x40003c]
mov eax, ecx
add eax, edi
mov ecx, edi
lea edx, [edx + 0x4000a0]
mov dword [ebp - 0x378], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x34c], edx
sub ecx, ebx
mov esi, ecx
mov edx, ecx
and esi, 0xfffff000
sub edx, esi
mov dword [ebp - 0x354], edx
mov edx, dword [ebp - 0x334]
add ecx, edx
mov edx, ecx
and edx, 0xfffff000
sub ecx, edx
add eax, ebx
mov dword [ebp - 0x364], ecx
mov ecx, dword [ebp - 0x34c]
mov dword [ebp - 0x368], edx
add ecx, eax
cmp eax, ecx
mov edx, eax
mov dword [ebp - 0x360], ecx
je 0x452b2c
cmp dword [edx], esi
jae 0x452b2c
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x360]
jne 0x452b1d
xor ecx, ecx
cmp edx, dword [ebp - 0x360]
je 0x452b5c
cmp dword [edx], esi
jne 0x452b5c
mov eax, dword [edx + 4]
sub eax, 8
shr eax, 1
je 0x452b5c
movzx esi, word [edx + ecx*2 + 8]
and esi, 0xfff
cmp esi, dword [ebp - 0x354]
jae 0x452b5c
inc ecx
cmp ecx, eax
jne 0x452b44
mov esi, 0x2f8c177
cmp edx, dword [ebp - 0x360]
je 0x452cd8
mov eax, dword [edx]
cmp eax, dword [ebp - 0x368]
ja 0x452cd8
mov eax, dword [edx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp ecx, eax
jne 0x452ba8
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x360]
je 0x452cd8
mov eax, dword [ebp - 0x368]
cmp dword [edx], eax
ja 0x452cd8
xor ecx, ecx
jmp 0x452b7b
mov eax, dword [edx]
cmp eax, dword [ebp - 0x368]
jne 0x452bc8
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x452cd8
mov eax, ecx
inc ecx
test word [edx + eax*2 + 8], 0xf000
mov dword [ebp - 0x358], ecx
je 0x452b61
lea eax, [edx + eax*2 + 8]
mov ecx, dword [edx]
and dword [ebp - 0x330], 0
movzx eax, word [eax]
and eax, 0xfff
lea eax, [eax + ecx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x452c64
mov eax, dword [ebp - 0x330]
movzx ecx, byte [eax + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x384], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
jb 0x452c0a
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x370]
mov dword [ebp - 0x66c], eax
xor edi, edi
movzx ecx, byte [ebp + edi - 0x66c]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc edi
mov dword [ebp - 0x384], eax
cmp edi, 4
jb 0x452c7a
mov edi, dword [ebp - 0x32c]
mov ecx, dword [ebp - 0x358]
add edi, 4
jmp 0x452b61
xor edx, edx
mov eax, dword [ebp - 0x378]
sub eax, edi
mov dword [ebp - 0x34c], eax
je 0x452d33
movzx ecx, byte [edx + edi]
sub ecx, esi
add dword [ebp - 0x388], ecx
add ecx, dword [ebp - 0x384]
mov eax, ecx
imul eax, eax, 0x5749
rol eax, 9
ror ecx, 9
xor eax, ecx
imul eax, eax, 0xfd073e89
ror eax, 9
imul eax, eax, 0xfd073e89
ror eax, 9
add dword [ebp - 0x388], eax
inc edx
cmp edx, dword [ebp - 0x34c]
mov dword [ebp - 0x384], eax
jb 0x452cea
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x388]
mov byte [ebp + eax - 0x324], cl
inc eax
cmp eax, 0x10
jb 0x452d37
mov eax, 0xd61020a2
mov edx, dword [ebp - 0x31c]
mov ecx, dword [ebp - 0x320]
mov esi, dword [ebp - 0x318]
mov eax, dword [ebp - 0x324]
mov dword [ebp - 0x7c8], eax
mov dword [ebp - 0x7a0], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x7c4], ecx
mov dword [ebp - 0x79c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x7cc], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x7b8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x790], eax
lea eax, [ebp - 0x244]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x7c0], edx
mov dword [ebp - 0x7bc], esi
mov dword [ebp - 0x798], edx
mov dword [ebp - 0x794], esi
mov dword [ebp - 0x7b4], edi
mov dword [ebp - 0x7b0], edi
mov dword [ebp - 0x7ac], edi
mov dword [ebp - 0x7a8], edi
mov dword [ebp - 0x7a4], ecx
mov dword [ebp - 0x334], eax
lea edi, [ebp - 0x614]
lea esi, [ebp - 0x7cc]
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x5f4]
mov esi, dword [ebp - 0x5e4]
mov eax, dword [ebp - 0x604]
mov dword [ebp - 0x32c], 2
mov edx, dword [ebp - 0x614]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov edi, dword [ebp - 0x600]
mov dword [ebp - 0x614], edx
mov edx, dword [ebp - 0x610]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5f0], edx
mov edx, edi
mov edi, dword [ebp - 0x5f0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5e0], edx
mov edx, edi
mov edi, dword [ebp - 0x5e0]
add edi, edx
mov edx, dword [ebp - 0x5e0]
rol edi, 0xd
xor dword [ebp - 0x610], edi
mov edi, dword [ebp - 0x610]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x5ec]
xor dword [ebp - 0x600], edx
mov edx, dword [ebp - 0x5fc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5dc], edx
mov edx, edi
mov edi, dword [ebp - 0x5dc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x60c], edx
mov edx, edi
mov edi, dword [ebp - 0x60c]
add edi, edx
mov edx, dword [ebp - 0x60c]
rol edi, 0xd
xor dword [ebp - 0x5fc], edi
mov edi, dword [ebp - 0x5fc]
add edx, edi
mov edi, dword [ebp - 0x5d8]
ror edx, 0xe
xor dword [ebp - 0x5ec], edx
mov edx, dword [ebp - 0x5e8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x608], edx
mov edx, edi
mov edi, dword [ebp - 0x608]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5f8], edx
mov edx, edi
mov edi, dword [ebp - 0x5f8]
add edi, edx
mov edx, dword [ebp - 0x5f8]
rol edi, 0xd
xor dword [ebp - 0x5e8], edi
mov edi, dword [ebp - 0x5e8]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x608]
xor dword [ebp - 0x5d8], edx
mov edx, dword [ebp - 0x614]
add edx, edi
rol edx, 7
xor dword [ebp - 0x610], edx
mov edi, dword [ebp - 0x610]
mov edx, dword [ebp - 0x614]
add edi, edx
mov edx, dword [ebp - 0x610]
rol edi, 9
xor dword [ebp - 0x60c], edi
mov edi, dword [ebp - 0x60c]
add edx, edi
rol edx, 0xd
xor dword [ebp - 0x608], edx
mov edx, edi
mov edi, dword [ebp - 0x608]
add edi, edx
mov edx, dword [ebp - 0x600]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x614], edi
rol edx, 7
xor dword [ebp - 0x5fc], edx
mov edx, dword [ebp - 0x600]
mov edi, dword [ebp - 0x5fc]
add edx, edi
rol edx, 9
xor dword [ebp - 0x5f8], edx
mov edx, edi
mov edi, dword [ebp - 0x5f8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x5f8]
xor eax, edi
mov edi, dword [ebp - 0x5ec]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x600], edx
mov edx, dword [ebp - 0x5f0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x5e8], edx
mov edx, edi
mov edi, dword [ebp - 0x5e8]
add edi, edx
rol edi, 9
xor ecx, edi
mov edx, dword [ebp - 0x5e8]
add edx, ecx
mov edi, dword [ebp - 0x5dc]
rol edx, 0xd
xor dword [ebp - 0x5f0], edx
mov edx, dword [ebp - 0x5f0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x5ec], edx
mov edx, dword [ebp - 0x5d8]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x5d8]
add edx, esi
rol edx, 9
xor dword [ebp - 0x5e0], edx
mov edx, dword [ebp - 0x5e0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x5dc], edx
mov edx, dword [ebp - 0x5e0]
mov edi, dword [ebp - 0x5dc]
add edx, edi
ror edx, 0xe
xor dword [ebp - 0x5d8], edx
dec dword [ebp - 0x32c]
jne 0x452e1c
push 0x40
mov dword [ebp - 0x604], eax
mov dword [ebp - 0x5e4], esi
mov dword [ebp - 0x5f4], ecx
pop edx
xor eax, eax
mov ecx, dword [ebp + eax - 0x7cc]
add dword [ebp + eax - 0x614], ecx
add eax, 4
cmp eax, edx
jl 0x45309b
lea esi, [ebp - 0x614]
lea edi, [ebp - 0x244]
mov eax, dword [ebp - 0x36c]
inc dword [ebp - 0x7ac]
push 0x10
cmp eax, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x45311f
mov edi, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
sub edi, esi
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x4530e5
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x350], edx
sub dword [ebp - 0x334], edx
jmp 0x452def
test eax, eax
jbe 0x453156
lea edi, [ebp - 0x244]
mov ecx, dword [ebp - 0x338]
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x32c], eax
sub edi, esi
sub ecx, esi
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x45313f
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x45320d
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
and edi, 0xfffffffc
mov dword [eax + 8], esi
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x4531a6
xor edx, edx
div ecx
inc edx
mov eax, dword [ebp - 0x37c]
mov ecx, dword [ebp - 0x34c]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x34c], 0
mov eax, edi
jae 0x44e45b
mov ecx, dword [ebp - 0x34c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x4531f9
jmp 0x44e45b
mov edi, dword [ebp - 0x348]
mov eax, dword [0x402600]
sub edi, dword [ebp - 0x340]
mov dword [ebp - 0x32c], edi
sub ebx, eax
mov dword [ebp - 0x33c], ebx
jne 0x453236
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x380]
add eax, ecx
xor ebx, ebx
mov ecx, dword [0x4bebb0]
mov dword [ebp - 0x66c], eax
dec ecx
js 0x453292
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x453283
lea ecx, [eax - 1]
jmp 0x453288
jbe 0x45329a
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x453261
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x45330c
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x45330c
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x66c]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x4532f8
dec ecx
je 0x4532f4
dec ecx
jne 0x453300
mov edx, dword [ebp - 0x33c]
jmp 0x453300
mov edx, edi
jmp 0x453300
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x453306
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x4532a8
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x453da2
mov esi, dword [0x4347a0]
mov edi, dword [ebp - 0x348]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x453399
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x4f9298]
mov dword [ebp - 0x34c], edx
mov edx, dword [edx + 4]
and edx, ecx
cmp edi, edx
jae 0x453384
lea esi, [eax - 1]
jmp 0x453391
jbe 0x453519
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x45335c
xor eax, eax
test eax, eax
je 0x453da2
mov edx, dword [eax + 4]
mov esi, dword [eax]
and edx, 7
shr esi, 2
and esi, ecx
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x374], eax
mov eax, dword [0x4c7398]
sub eax, esi
mov dword [ebp - 0x344], edi
sub dword [ebp - 0x344], ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x348], edi
xor eax, eax
mov dword [ebp - 0x380], esi
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x453414
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x4533eb
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push esi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0xfde7bf8c
mov eax, dword [ebp - 0x374]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x6b4], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
mov dword [ebp - 0x6b8], ecx
test esi, esi
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x330], edi
mov dword [ebp - 0x350], eax
je 0x453bd9
lea eax, [ebp - 0x6b8]
push eax
mov eax, 0xd8035b4f
mov eax, 0xfffffff
mov esi, dword [0x402600]
mov edi, dword [ebp - 0x6b8]
pop ecx
mov ecx, dword [ebp - 0x6b4]
and ecx, eax
and edi, eax
xor edx, edx
add edi, ebx
mov eax, ebx
mov dword [ebp - 0x3c8], edx
mov dword [ebp - 0x3c4], edx
mov dword [ebp - 0x334], ecx
sub eax, esi
mov dword [ebp - 0x370], eax
jne 0x453535
cmp ecx, edx
jbe 0x4537ae
mov esi, 0x2aa66c86
movzx eax, byte [edx + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
inc edx
cmp edx, dword [ebp - 0x334]
mov dword [ebp - 0x3c4], eax
jb 0x4534cb
jmp 0x4537ae
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax + 4]
mov eax, dword [eax]
and edx, ecx
and eax, 0x3f
lea eax, [eax + edx + 0x400000]
jmp 0x45339b
mov edx, dword [0x40003c]
mov eax, ecx
lea edx, [edx + 0x4000a0]
mov ecx, edi
add eax, edi
mov dword [ebp - 0x378], eax
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x34c], edx
sub ecx, ebx
mov edx, ecx
mov esi, ecx
and esi, 0xfffff000
sub edx, esi
mov dword [ebp - 0x354], edx
mov edx, dword [ebp - 0x334]
add ecx, edx
mov edx, ecx
and edx, 0xfffff000
sub ecx, edx
add eax, ebx
mov dword [ebp - 0x364], ecx
mov ecx, dword [ebp - 0x34c]
mov dword [ebp - 0x368], edx
mov edx, eax
add ecx, eax
cmp eax, ecx
mov dword [ebp - 0x360], ecx
je 0x4535ab
cmp dword [edx], esi
jae 0x4535ab
add edx, dword [edx + 4]
cmp edx, ecx
jne 0x4535a0
xor ecx, ecx
cmp edx, dword [ebp - 0x360]
je 0x4535db
cmp dword [edx], esi
jne 0x4535db
mov eax, dword [edx + 4]
sub eax, 8
shr eax, 1
je 0x4535db
movzx esi, word [edx + ecx*2 + 8]
and esi, 0xfff
cmp esi, dword [ebp - 0x354]
jae 0x4535db
inc ecx
cmp ecx, eax
jne 0x4535c3
mov esi, 0x2aa66c86
cmp edx, dword [ebp - 0x360]
je 0x453753
mov eax, dword [edx]
cmp eax, dword [ebp - 0x368]
ja 0x453753
mov eax, dword [edx + 4]
add eax, 0xfffffff8
shr eax, 1
cmp ecx, eax
jne 0x453627
add edx, dword [edx + 4]
cmp edx, dword [ebp - 0x360]
je 0x453753
mov eax, dword [ebp - 0x368]
cmp dword [edx], eax
ja 0x453753
xor ecx, ecx
jmp 0x4535fa
mov eax, dword [edx]
cmp eax, dword [ebp - 0x368]
jne 0x453647
movzx eax, word [edx + ecx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x453753
mov eax, ecx
inc ecx
test word [edx + eax*2 + 8], 0xf000
mov dword [ebp - 0x358], ecx
je 0x4535e0
mov ecx, dword [edx]
lea eax, [edx + eax*2 + 8]
movzx eax, word [eax]
and eax, 0xfff
lea ecx, [eax + ecx + 0x400000]
mov dword [ebp - 0x334], ecx
xor eax, eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x33c], ecx
mov dword [ebp - 0x32c], eax
je 0x4536df
movzx eax, byte [eax + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
mov eax, dword [ebp - 0x32c]
inc eax
cmp eax, dword [ebp - 0x334]
mov dword [ebp - 0x32c], eax
jb 0x45368a
mov eax, dword [ebp - 0x33c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x370]
xor ecx, ecx
mov dword [ebp - 0x664], eax
movzx eax, byte [ebp + ecx - 0x664]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov edi, eax
imul eax, eax, 0x2434
rol eax, 6
ror edi, 6
xor eax, edi
add dword [ebp - 0x3c8], eax
mov dword [ebp - 0x3c4], eax
inc ecx
cmp ecx, 4
jb 0x4536f5
mov ecx, dword [ebp - 0x358]
mov edi, dword [ebp - 0x33c]
add edi, 4
jmp 0x4535e0
xor edx, edx
mov eax, dword [ebp - 0x378]
sub eax, edi
mov dword [ebp - 0x34c], eax
je 0x4537ae
movzx eax, byte [edx + edi]
add eax, esi
add dword [ebp - 0x3c8], eax
add eax, dword [ebp - 0x3c4]
imul eax, eax, 0x2aa66c86
ror eax, 0x14
imul eax, eax, 0x2aa66c86
ror eax, 0x14
mov ecx, eax
imul eax, eax, 0x2434
rol eax, 6
ror ecx, 6
xor eax, ecx
add dword [ebp - 0x3c8], eax
inc edx
cmp edx, dword [ebp - 0x34c]
mov dword [ebp - 0x3c4], eax
jb 0x453765
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3c8]
mov byte [ebp + eax - 0x2b4], cl
inc eax
cmp eax, 0x10
jb 0x4537b0
mov eax, 0x656b13f
mov eax, dword [ebp - 0x2b4]
mov ecx, dword [ebp - 0x2b0]
mov esi, dword [ebp - 0x2a8]
mov edx, dword [ebp - 0x2ac]
mov dword [ebp - 0x708], eax
mov dword [ebp - 0x6e0], eax
xor eax, eax
mov dword [ebp - 0x6f4], eax
mov dword [ebp - 0x6f0], eax
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6e8], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x704], ecx
mov dword [ebp - 0x6dc], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x70c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x6f8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x6d0], eax
lea eax, [ebp - 0x1c4]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x700], edx
mov dword [ebp - 0x6fc], esi
mov dword [ebp - 0x6d8], edx
mov dword [ebp - 0x6d4], esi
mov dword [ebp - 0x6e4], ecx
mov dword [ebp - 0x334], eax
push 0x10
lea esi, [ebp - 0x70c]
pop ecx
lea edi, [ebp - 0x454]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x434]
mov esi, dword [ebp - 0x424]
mov eax, dword [ebp - 0x444]
mov dword [ebp - 0x32c], 2
mov edx, dword [ebp - 0x454]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x454], edx
mov edi, dword [ebp - 0x440]
mov edx, dword [ebp - 0x450]
add edx, edi
rol edx, 7
xor dword [ebp - 0x430], edx
mov edx, edi
mov edi, dword [ebp - 0x430]
add edx, edi
rol edx, 9
xor dword [ebp - 0x420], edx
mov edx, edi
mov edi, dword [ebp - 0x420]
add edi, edx
mov edx, dword [ebp - 0x420]
rol edi, 0xd
xor dword [ebp - 0x450], edi
mov edi, dword [ebp - 0x450]
add edx, edi
mov edi, dword [ebp - 0x42c]
ror edx, 0xe
xor dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x43c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x41c], edx
mov edx, edi
mov edi, dword [ebp - 0x41c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x44c], edx
mov edx, edi
mov edi, dword [ebp - 0x44c]
add edi, edx
mov edx, dword [ebp - 0x44c]
rol edi, 0xd
xor dword [ebp - 0x43c], edi
mov edi, dword [ebp - 0x43c]
add edx, edi
mov edi, dword [ebp - 0x418]
ror edx, 0xe
xor dword [ebp - 0x42c], edx
mov edx, dword [ebp - 0x428]
add edx, edi
rol edx, 7
xor dword [ebp - 0x448], edx
mov edx, edi
mov edi, dword [ebp - 0x448]
add edx, edi
rol edx, 9
xor dword [ebp - 0x438], edx
mov edx, edi
mov edi, dword [ebp - 0x438]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x438]
xor dword [ebp - 0x428], edi
mov edi, dword [ebp - 0x428]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x454]
xor dword [ebp - 0x418], edx
mov edx, dword [ebp - 0x448]
add edx, edi
rol edx, 7
xor dword [ebp - 0x450], edx
mov edx, edi
mov edi, dword [ebp - 0x450]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x450]
xor dword [ebp - 0x44c], edi
mov edi, dword [ebp - 0x44c]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x44c]
xor dword [ebp - 0x448], edi
mov edi, dword [ebp - 0x448]
add edi, edx
mov edx, dword [ebp - 0x440]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x454], edi
rol edx, 7
xor dword [ebp - 0x43c], edx
mov edi, dword [ebp - 0x43c]
mov edx, dword [ebp - 0x440]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x43c]
xor dword [ebp - 0x438], edi
mov edi, dword [ebp - 0x438]
add edi, edx
mov edx, dword [ebp - 0x438]
rol edi, 0xd
xor eax, edi
mov edi, dword [ebp - 0x430]
add edx, eax
ror edx, 0xe
xor dword [ebp - 0x440], edx
mov edx, dword [ebp - 0x42c]
add edx, edi
rol edx, 7
xor dword [ebp - 0x428], edx
mov edi, dword [ebp - 0x428]
mov edx, dword [ebp - 0x42c]
add edi, edx
rol edi, 9
mov edx, dword [ebp - 0x428]
xor ecx, edi
add edx, ecx
mov edi, dword [ebp - 0x41c]
rol edx, 0xd
xor dword [ebp - 0x430], edx
mov edx, dword [ebp - 0x430]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x42c], edx
mov edx, dword [ebp - 0x418]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x418]
add edx, esi
rol edx, 9
xor dword [ebp - 0x420], edx
mov edx, dword [ebp - 0x420]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x41c], edx
mov edx, dword [ebp - 0x420]
mov edi, dword [ebp - 0x41c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x418], edi
dec dword [ebp - 0x32c]
jne 0x453897
push 0x40
mov dword [ebp - 0x444], eax
xor eax, eax
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x434], ecx
pop edx
mov ecx, dword [ebp + eax - 0x70c]
add dword [ebp + eax - 0x454], ecx
add eax, 4
cmp eax, edx
jl 0x453b1e
lea esi, [ebp - 0x454]
mov eax, dword [ebp - 0x36c]
inc dword [ebp - 0x6ec]
lea edi, [ebp - 0x1c4]
push 0x10
pop ecx
cmp eax, edx
rep movsd dword es:[edi], dword [esi]
jbe 0x453ba2
mov edi, dword [ebp - 0x350]
mov esi, dword [ebp - 0x330]
mov dword [ebp - 0x32c], edx
sub edi, esi
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x453b68
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x350], edx
add dword [ebp - 0x330], edx
sub dword [ebp - 0x334], edx
jmp 0x45386a
test eax, eax
jbe 0x453bd9
lea edi, [ebp - 0x1c4]
mov esi, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x350]
sub edi, esi
sub ecx, esi
mov dword [ebp - 0x32c], eax
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x453bc2
mov eax, dword [ebp - 0x374]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x453c90
call fcn.004fdc7b
mov esi, 0x4b3c5b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x3d4]
lea edi, [eax + 0xc]
and edi, 0xfffffffc
lea ebx, [edi + 0xfff]
and ebx, ecx
mov dword [eax + 8], esi
mov ecx, 0xffff
xor eax, eax
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x453c29
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x37c]
inc edx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x34c], 0
mov eax, edi
cmp edi, ebx
jae 0x44e45b
mov ecx, dword [ebp - 0x34c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x453c7c
jmp 0x44e45b
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
mov eax, dword [0x402600]
sub ebx, eax
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jne 0x453cb9
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
sub esi, dword [ebp - 0x348]
mov eax, dword [ebp - 0x380]
mov ecx, dword [ebp - 0x344]
add eax, ecx
mov ecx, dword [0x4bebb0]
xor ebx, ebx
dec ecx
mov dword [ebp - 0x664], eax
js 0x453d15
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x453d06
lea ecx, [eax - 1]
jmp 0x453d0b
jbe 0x453d1d
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x453ce4
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x453d8f
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x453d8f
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x664]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x453d7b
dec ecx
je 0x453d77
dec ecx
jne 0x453d83
mov edx, dword [ebp - 0x33c]
jmp 0x453d83
mov edx, edi
jmp 0x453d83
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x453d89
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x453d2b
jmp 0x44e56b
cmp dword [ebp - 0x348], ebx
jb 0x4548d2
mov eax, dword [0x40003c]
mov eax, dword [eax + 0x400050]
add eax, ebx
cmp dword [ebp - 0x348], eax
jae 0x4548d2
mov edi, dword [ebp - 0x348]
mov esi, dword [0x476374]
and dword [ebp - 0x334], 0
sub edi, ebx
dec esi
js 0x453e1d
mov eax, dword [ebp - 0x334]
add eax, esi
cdq
sub eax, edx
sar eax, 1
lea edx, [eax*8 + 0x4a2c88]
mov dword [ebp - 0x34c], edx
mov edx, dword [edx]
shr edx, 1
and edx, ecx
cmp edi, edx
jae 0x453e08
lea esi, [eax - 1]
jmp 0x453e15
jbe 0x453fc6
inc eax
mov dword [ebp - 0x334], eax
cmp esi, dword [ebp - 0x334]
jge 0x453ddf
xor eax, eax
test eax, eax
je 0x4548d2
mov esi, dword [eax]
mov edx, dword [eax + 4]
and esi, ecx
and edx, 7
lea edi, [edx + eax + 8]
lea eax, [esi + edi]
mov dword [ebp - 0x33c], eax
mov eax, dword [0x4c7398]
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 0x344], edi
sub dword [ebp - 0x344], ebx
mov dword [ebp - 0x348], edi
mov dword [ebp - 0x380], esi
xor eax, eax
test ecx, ecx
mov dword [ebp - 0x32c], ecx
je 0x453e95
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x453e6c
xor edx, edx
div ecx
mov eax, dword [ebp - 0x340]
add eax, edx
push eax
push esi
push dword [ebp - 0x344]
mov dword [ebp - 0x340], eax
mov eax, 0x4a21b1dc
mov eax, dword [ebp - 0x33c]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x67c], eax
mov eax, dword [ebp - 0x340]
add esp, 0xc
test esi, esi
mov dword [ebp - 0x680], ecx
mov byte [ebp - 0x325], 0
mov dword [ebp - 0x36c], esi
mov dword [ebp - 0x350], edi
mov dword [ebp - 0x338], eax
je 0x454709
lea eax, [ebp - 0x680]
push eax
mov eax, 0x61a7f1d6
mov esi, dword [0x402600]
mov edi, dword [ebp - 0x680]
pop ecx
mov eax, 0xfffffff
mov ecx, dword [ebp - 0x67c]
and ecx, eax
and edi, eax
mov eax, ebx
xor edx, edx
mov dword [ebp - 0x3d0], edx
mov dword [ebp - 0x3cc], edx
mov dword [ebp - 0x32c], ecx
add edi, ebx
sub eax, esi
mov dword [ebp - 0x370], eax
jne 0x453fe4
mov dword [ebp - 0x330], edx
cmp ecx, edx
jbe 0x4542de
mov ecx, 0x7fffffff
mov esi, 0x4494b131
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
jb 0x453f5b
jmp 0x4542de
mov eax, dword [ebp - 0x34c]
mov edx, dword [eax]
shr edx, 1
mov eax, dword [eax + 4]
and edx, ecx
and eax, 0x3f
lea eax, [eax + edx + 0x400000]
jmp 0x453e1f
lea eax, [edi + ecx]
mov ecx, edi
sub ecx, ebx
mov esi, ecx
mov edx, dword [0x40003c]
mov dword [ebp - 0x378], eax
lea edx, [edx + 0x4000a0]
mov eax, dword [edx]
mov edx, dword [edx + 4]
mov dword [ebp - 0x34c], edx
mov edx, ecx
and edx, 0xfffff000
sub esi, edx
mov dword [ebp - 0x354], esi
mov esi, dword [ebp - 0x32c]
add ecx, esi
mov esi, ecx
and esi, 0xfffff000
sub ecx, esi
add eax, ebx
mov dword [ebp - 0x368], esi
mov esi, dword [ebp - 0x34c]
mov dword [ebp - 0x364], ecx
mov ecx, eax
add esi, eax
cmp eax, esi
mov dword [ebp - 0x360], esi
jmp 0x454057
cmp dword [ecx], edx
jae 0x45405f
add ecx, dword [ecx + 4]
cmp ecx, esi
mov dword [ebp - 0x35c], ecx
jne 0x45404e
and dword [ebp - 0x358], 0
cmp ecx, esi
je 0x45409f
cmp dword [ecx], edx
jne 0x45409f
mov eax, dword [ecx + 4]
sub eax, 8
shr eax, 1
je 0x45409f
mov edx, dword [ebp - 0x358]
movzx edx, word [ecx + edx*2 + 8]
and edx, 0xfff
cmp edx, dword [ebp - 0x354]
jae 0x45409f
inc dword [ebp - 0x358]
cmp dword [ebp - 0x358], eax
jne 0x454078
mov ecx, 0x7fffffff
mov esi, 0x4494b131
mov eax, dword [ebp - 0x35c]
cmp eax, dword [ebp - 0x360]
je 0x454261
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x454261
mov eax, dword [eax + 4]
add eax, 0xfffffff8
shr eax, 1
cmp dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x35c]
jne 0x45410b
add eax, dword [eax + 4]
cmp eax, dword [ebp - 0x360]
mov dword [ebp - 0x35c], eax
je 0x454261
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
ja 0x454261
and dword [ebp - 0x358], 0
jmp 0x4540c9
mov edx, dword [ebp - 0x368]
cmp dword [eax], edx
jne 0x454137
mov edx, dword [ebp - 0x358]
movzx eax, word [eax + edx*2 + 8]
and eax, 0xfff
cmp eax, dword [ebp - 0x364]
jae 0x454261
mov eax, dword [ebp - 0x35c]
mov edx, dword [ebp - 0x358]
inc dword [ebp - 0x358]
test word [eax + edx*2 + 8], 0xf000
je 0x4540af
lea edx, [eax + edx*2 + 8]
and dword [ebp - 0x330], 0
movzx edx, word [edx]
mov eax, dword [eax]
and edx, 0xfff
lea eax, [eax + edx + 0x400000]
mov dword [ebp - 0x334], eax
sub dword [ebp - 0x334], edi
mov dword [ebp - 0x32c], eax
je 0x4541e7
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x334]
jb 0x454181
mov eax, dword [ebp - 0x32c]
mov eax, dword [eax]
sub eax, dword [ebp - 0x370]
xor edi, edi
mov dword [ebp - 0x658], eax
movzx edx, byte [ebp + edi - 0x658]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc edi
cmp edi, 4
mov dword [ebp - 0x3cc], eax
jb 0x4541fd
mov edi, dword [ebp - 0x32c]
add edi, 4
jmp 0x4540a9
mov eax, dword [ebp - 0x378]
and dword [ebp - 0x330], 0
sub eax, edi
mov dword [ebp - 0x34c], eax
je 0x4542de
mov eax, dword [ebp - 0x330]
movzx edx, byte [eax + edi]
sub edx, esi
add dword [ebp - 0x3d0], edx
add edx, dword [ebp - 0x3cc]
mov eax, edx
imul eax, eax, 0xd384
rol eax, 0xf
ror edx, 0xf
xor eax, edx
mov edx, 0xbb6b4ecf
mul edx
lea edx, [eax + edx*2 - 0x7fffffff]
sar eax, 0x1f
and eax, ecx
sub edx, eax
mov eax, edx
sar eax, 0x1f
and eax, ecx
add eax, edx
add dword [ebp - 0x3d0], eax
inc dword [ebp - 0x330]
mov dword [ebp - 0x3cc], eax
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x34c]
jb 0x454278
xor edi, edi
xor eax, eax
mov ecx, eax
and ecx, 7
mov cl, byte [ebp + ecx - 0x3d0]
mov byte [ebp + eax - 0x2f4], cl
inc eax
cmp eax, 0x10
jb 0x4542e2
mov eax, 0xf7785e2f
mov ecx, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
mov esi, dword [ebp - 0x2e8]
mov eax, dword [ebp - 0x2f4]
mov dword [ebp - 0x8c8], eax
mov dword [ebp - 0x8a0], eax
mov eax, dword [0x5294e0]
mov dword [ebp - 0x8c4], ecx
mov dword [ebp - 0x89c], ecx
mov ecx, dword [eax]
mov dword [ebp - 0x8cc], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x8b8], ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x890], eax
lea eax, [ebp - 0x144]
sub eax, dword [ebp - 0x348]
mov dword [ebp - 0x8c0], edx
mov dword [ebp - 0x8bc], esi
mov dword [ebp - 0x898], edx
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x8b4], edi
mov dword [ebp - 0x8b0], edi
mov dword [ebp - 0x8ac], edi
mov dword [ebp - 0x8a8], edi
mov dword [ebp - 0x8a4], ecx
mov dword [ebp - 0x334], eax
lea esi, [ebp - 0x8cc]
push 0x10
lea edi, [ebp - 0x4d4]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x4b4]
mov eax, dword [ebp - 0x4c4]
mov esi, dword [ebp - 0x4a4]
mov dword [ebp - 0x32c], 3
mov edx, dword [ebp - 0x4d4]
lea edi, [edx + esi]
rol edi, 7
xor eax, edi
lea edi, [edx + eax]
rol edi, 9
xor ecx, edi
lea edi, [ecx + eax]
rol edi, 0xd
xor esi, edi
lea edi, [ecx + esi]
ror edi, 0xe
xor edx, edi
mov dword [ebp - 0x4d4], edx
mov edi, dword [ebp - 0x4c0]
mov edx, dword [ebp - 0x4d0]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4b0], edx
mov edx, edi
mov edi, dword [ebp - 0x4b0]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4a0], edx
mov edx, edi
mov edi, dword [ebp - 0x4a0]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4a0]
xor dword [ebp - 0x4d0], edi
mov edi, dword [ebp - 0x4d0]
add edx, edi
mov edi, dword [ebp - 0x4ac]
ror edx, 0xe
xor dword [ebp - 0x4c0], edx
mov edx, dword [ebp - 0x4bc]
add edx, edi
rol edx, 7
xor dword [ebp - 0x49c], edx
mov edx, edi
mov edi, dword [ebp - 0x49c]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4cc], edx
mov edx, edi
mov edi, dword [ebp - 0x4cc]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4cc]
xor dword [ebp - 0x4bc], edi
mov edi, dword [ebp - 0x4bc]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x498]
xor dword [ebp - 0x4ac], edx
mov edx, dword [ebp - 0x4a8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4c8], edx
mov edx, edi
mov edi, dword [ebp - 0x4c8]
add edx, edi
rol edx, 9
xor dword [ebp - 0x4b8], edx
mov edx, edi
mov edi, dword [ebp - 0x4b8]
add edi, edx
rol edi, 0xd
mov edx, dword [ebp - 0x4b8]
xor dword [ebp - 0x4a8], edi
mov edi, dword [ebp - 0x4a8]
add edx, edi
ror edx, 0xe
mov edi, dword [ebp - 0x4d4]
xor dword [ebp - 0x498], edx
mov edx, dword [ebp - 0x4c8]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4d0], edx
mov edx, edi
mov edi, dword [ebp - 0x4d0]
add edi, edx
mov edx, dword [ebp - 0x4d0]
rol edi, 9
xor dword [ebp - 0x4cc], edi
mov edi, dword [ebp - 0x4cc]
add edi, edx
mov edx, dword [ebp - 0x4cc]
rol edi, 0xd
xor dword [ebp - 0x4c8], edi
mov edi, dword [ebp - 0x4c8]
add edi, edx
mov edx, dword [ebp - 0x4c0]
add edx, eax
ror edi, 0xe
xor dword [ebp - 0x4d4], edi
rol edx, 7
xor dword [ebp - 0x4bc], edx
mov edx, dword [ebp - 0x4c0]
mov edi, dword [ebp - 0x4bc]
add edi, edx
mov edx, dword [ebp - 0x4bc]
rol edi, 9
xor dword [ebp - 0x4b8], edi
mov edi, dword [ebp - 0x4b8]
add edi, edx
mov edx, dword [ebp - 0x4b8]
rol edi, 0xd
xor eax, edi
add edx, eax
mov edi, dword [ebp - 0x4b0]
ror edx, 0xe
xor dword [ebp - 0x4c0], edx
mov edx, dword [ebp - 0x4ac]
add edx, edi
rol edx, 7
xor dword [ebp - 0x4a8], edx
mov edi, dword [ebp - 0x4a8]
mov edx, dword [ebp - 0x4ac]
add edi, edx
mov edx, dword [ebp - 0x4a8]
rol edi, 9
xor ecx, edi
mov edi, dword [ebp - 0x49c]
add edx, ecx
rol edx, 0xd
xor dword [ebp - 0x4b0], edx
mov edx, dword [ebp - 0x4b0]
add edx, ecx
ror edx, 0xe
xor dword [ebp - 0x4ac], edx
mov edx, dword [ebp - 0x498]
add edx, edi
rol edx, 7
xor esi, edx
mov edx, dword [ebp - 0x498]
add edx, esi
rol edx, 9
xor dword [ebp - 0x4a0], edx
mov edx, dword [ebp - 0x4a0]
add edx, esi
rol edx, 0xd
xor dword [ebp - 0x49c], edx
mov edx, dword [ebp - 0x4a0]
mov edi, dword [ebp - 0x49c]
add edi, edx
ror edi, 0xe
xor dword [ebp - 0x498], edi
dec dword [ebp - 0x32c]
jne 0x4543c7
push 0x40
mov dword [ebp - 0x4c4], eax
xor eax, eax
mov dword [ebp - 0x4a4], esi
mov dword [ebp - 0x4b4], ecx
pop edx
mov ecx, dword [ebp + eax - 0x8cc]
add dword [ebp + eax - 0x4d4], ecx
add eax, 4
cmp eax, edx
jl 0x45464e
lea edi, [ebp - 0x144]
lea esi, [ebp - 0x4d4]
mov eax, dword [ebp - 0x36c]
inc dword [ebp - 0x8ac]
cmp eax, edx
push 0x10
pop ecx
rep movsd dword es:[edi], dword [esi]
jbe 0x4546d2
mov esi, dword [ebp - 0x350]
mov edi, dword [ebp - 0x338]
mov dword [ebp - 0x32c], edx
sub edi, esi
mov eax, dword [ebp - 0x334]
mov al, byte [eax + esi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [edi + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x454698
sub dword [ebp - 0x36c], edx
add dword [ebp - 0x338], edx
add dword [ebp - 0x350], edx
sub dword [ebp - 0x334], edx
jmp 0x45439a
test eax, eax
jbe 0x454709
mov ecx, dword [ebp - 0x338]
lea edi, [ebp - 0x144]
mov esi, dword [ebp - 0x350]
sub edi, esi
sub ecx, esi
mov dword [ebp - 0x32c], eax
mov al, byte [esi + edi]
xor al, byte [esi]
xor byte [ebp - 0x325], al
mov byte [ecx + esi], al
inc esi
dec dword [ebp - 0x32c]
jne 0x4546f2
mov eax, dword [ebp - 0x33c]
mov al, byte [eax + 8]
xor al, byte [ebp - 0x325]
je 0x4547c0
call fcn.004fdc7b
mov ecx, 0xfffff000
and eax, ecx
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x3d4]
mov esi, 0x4b3c5b
lea edi, [eax + 0xc]
and edi, 0xfffffffc
mov dword [eax + 8], esi
lea ebx, [edi + 0xfff]
and ebx, ecx
xor eax, eax
mov ecx, 0xffff
mov dword [ebp - 0x32c], ecx
mov edx, dword [0x51b214]
imul edx, edx, 0x343fd
add edx, 0x269ec3
mov dword [0x51b214], edx
shr edx, 0x10
shl eax, 0x10
or eax, edx
shr dword [ebp - 0x32c], 0x10
jne 0x454759
xor edx, edx
div ecx
mov ecx, dword [ebp - 0x34c]
inc edx
mov eax, dword [ebp - 0x37c]
cmp edi, ebx
mov dword [eax], edx
mov dword [eax + 0x1c], ecx
mov dword [ebp - 0x34c], 0
mov eax, edi
jae 0x44e45b
mov ecx, dword [ebp - 0x34c]
mov dword [eax], ecx
add eax, 4
cmp eax, ebx
jb 0x4547ac
jmp 0x44e45b
mov eax, dword [0x402600]
mov edi, dword [ebp - 0x348]
sub edi, dword [ebp - 0x340]
sub ebx, eax
mov dword [ebp - 0x32c], edi
mov dword [ebp - 0x33c], ebx
jne 0x4547e9
test edi, edi
je 0x44e56b
mov esi, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x380]
mov eax, dword [ebp - 0x344]
sub esi, dword [ebp - 0x348]
add eax, ecx
mov ecx, dword [0x4bebb0]
xor ebx, ebx
mov dword [ebp - 0x658], eax
dec ecx
js 0x454845
lea eax, [ebx + ecx]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [eax*4 + 0x4bebb4]
and edx, 0xfffffff
cmp dword [ebp - 0x344], edx
jae 0x454836
lea ecx, [eax - 1]
jmp 0x45483b
jbe 0x45484d
lea ebx, [eax + 1]
cmp ecx, ebx
jge 0x454814
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], ebx
jmp 0x4548bf
mov edi, dword [ebp - 0x32c]
mov dword [ebp - 0x338], eax
jmp 0x4548bf
mov eax, dword [ebp - 0x338]
mov eax, dword [eax*4 + 0x4bebb4]
mov ecx, eax
and ecx, 0xfffffff
cmp ecx, dword [ebp - 0x658]
jae 0x44e56b
lea ebx, [ecx + esi + 0x400000]
mov ecx, eax
shl ecx, 2
sar ecx, 0x1e
sar eax, 0x1e
and ecx, 3
and eax, 3
xor edx, edx
dec ecx
je 0x4548ab
dec ecx
je 0x4548a7
dec ecx
jne 0x4548b3
mov edx, dword [ebp - 0x33c]
jmp 0x4548b3
mov edx, edi
jmp 0x4548b3
mov edx, dword [ebp - 0x33c]
sub edx, edi
dec eax
dec eax
jne 0x4548b9
add dword [ebx], edx
inc dword [ebp - 0x338]
mov eax, dword [ebp - 0x338]
cmp eax, dword [0x4bebb0]
jb 0x45485b
jmp 0x44e56b
mov eax, 0xc4c3cb28
mov edi, dword [ebp - 0x340]
mov esi, section..data
cmp edi, esi
jb 0x45491d
mov eax, dword [0x403ef8]
mov ecx, dword [0x4c7398]
imul eax, ecx
lea eax, [eax + section..data]
cmp edi, eax
jae 0x45491d
mov eax, edi
mov ecx, dword [0x4c7398]
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x4c7398]
imul ecx, eax
lea ecx, [ecx + section..data]
jmp 0x45491f
xor ecx, ecx
test ecx, ecx
je 0x454944
mov eax, edi
mov ecx, dword [0x4c7398]
sub eax, esi
xor edx, edx
div ecx
mov ecx, dword [0x403ef8]
mov dword [eax*4 + 0x529524], 0x3c6f
jmp 0x454961
call dword [sym.imp.kernel32.dll_GetLastError]
mov esi, eax
push 0x8000
push 0
push edi
call dword [sym.imp.kernel32.dll_VirtualFree]
push esi
call dword [sym.imp.kernel32.dll_SetLastError]
mov eax, dword [ebp - 0x348]
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.004e51a8
leave
ret 0x10