Function at 0x4bdd9c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x138
lea eax, [ebp - 0x18]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0xf8], edx
mov dword [eax - 4], esp
or dword [eax + 8], 0xffffffff
mov dword [eax + 4], 0x585310
mov ecx, dword fs:[0]
mov dword [eax], ecx
mov dword fs:[0], eax
and dword [eax + 8], 0
mov byte [ebp - 0x2a], 1
mov ecx, dword [edx + 8]
mov dword [ebp - 0x24], ecx
call fcn.004b036c
mov esi, dword [ebp - 0xf8]
lea ecx, [ebp - 0xc4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
and dword [ecx + 8], 0
imul ecx, dword [ebp - 0x24], 0x1c
mov eax, dword [esi + 4]
mov edx, dword [esi]
add ecx, eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0xac], ecx
cmp eax, ecx
je 0x4bdf49
lea ecx, [eax + 0x1c]
mov dword [ebp - 0xb0], ecx
mov ecx, dword [eax]
cmp ecx, 8
je 0x4bdf49
mov dword [ebp - 0x144], ecx
lea ecx, [ebp - 0x140]
lea edx, [ebp - 0x144]
movsd xmm0, qword [eax + 0x14]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [eax + 4]
movsd xmm1, qword [eax + 0xc]
mov dword [ebp - 0x10], 0x1a
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
lea ecx, [ebp - 0x5c]
call fcn.004bfc1b
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
cmp edi, 7
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x28], edi
jne 0x4bdf02
imul ecx, edx, 0x1c
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x10], 0x1c
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], ecx
add ecx, ebx
mov dword [ebp - 0x50], ecx
lea ecx, [ebp - 0xc4]
call fcn.004ac98b
mov esi, dword [ebp - 0xbc]
imul eax, esi, 0x1c
add eax, dword [ebp - 0xc0]
push dword [ebp - 0x38]
mov edi, dword [ebp - 0x30]
push edi
push eax
call fcn.0058a110
add esp, 0xc
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x10], 0x1b
add eax, esi
mov dword [ebp - 0xbc], eax
call fcn.004ac9a9
mov ecx, dword [ebp - 0x24]
call fcn.00405365
jmp 0x4bdf38
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x10], 0x1b
mov dword [ebp - 0x30], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], edx
lea edx, [ebp - 0x5c]
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4c], ecx
lea ecx, [ebp - 0xc4]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], esi
call fcn.004acfdb
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
jmp 0x4bde1c
lea ecx, [ebp - 0xb8]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 1
call fcn.004ac9a9
mov eax, dword [ebp - 0xbc]
cmp eax, 1
je 0x4bdf7c
test eax, eax
jne 0x4bdfe7
mov ecx, dword [ebp - 0x74]
mov byte [ebp - 0x1d], 1
call fcn.004bfd08
jmp 0x4bdfc0
and dword [ebp - 0xbc], 0
lea edx, [ebp - 0x5c]
mov ecx, dword [ebp - 0x74]
mov eax, dword [ebp - 0xc0]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [edx], xmm0
movsd qword [edx + 8], xmm1
movsd xmm0, qword [eax + 0x10]
movsd qword [edx + 0x10], xmm0
mov eax, dword [eax + 0x18]
mov byte [ebp - 0x1d], 1
mov dword [edx + 0x18], eax
push 0x5d6de8
call fcn.004bfccf
pop eax
and dword [ebp - 0x10], 0
lea ecx, [ebp - 0xc4]
mov byte [ebp - 0x2a], 0
call fcn.00477b89
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
add esp, 0x138
pop esi
pop edi
pop ebx
pop ebp
ret
lea edx, [ebp - 0x5c]
mov ecx, dword [ebp - 0xc0]
imul eax, eax, 0x1c
and dword [edx], 0
mov dword [edx + 4], 4
and dword [edx + 8], 0
xor edx, edx
push 4
pop esi
test eax, eax
je 0x4be683
cmp dword [ecx], 1
jne 0x4be0b5
mov dword [ebp - 0x3c], esi
mov esi, dword [ecx + 8]
mov dword [ebp - 0x30], edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x19
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0x38], esi
push esi
call fcn.004addbd
pop eax
cmp byte [ebp - 0xb8], 0
jne 0x4be0b5
mov edi, dword [ebp - 0xb4]
mov eax, 1
cmp edi, 0x80
jb 0x4be073
cmp edi, 0x800
push 2
pop eax
jb 0x4be073
cmp edi, 0x10000
push 4
pop eax
sbb eax, 0
cmp dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 0x3c]
jne 0x4be0b5
cmp edx, dword [ebp - 0x5c]
jne 0x4be0a3
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x3c], edi
call fcn.0053c9a0
mov esi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x3c]
mov dword [esi + edx*4], edi
inc edx
add ecx, 0x1c
add eax, 0xffffffe4
mov dword [ebp - 0x54], edx
jmp 0x4be006
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
call fcn.004257e7
mov ecx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc0]
lea edx, [ebp - 0x5c]
and dword [edx], 0
mov dword [edx + 4], 1
and dword [edx + 8], 0
imul edx, ecx, 0x1c
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x24], eax
lea ecx, [eax + edx]
mov dword [ebp - 0xc8], ecx
test edx, edx
je 0x4be141
mov ecx, dword [ebp - 0x24]
cmp dword [ecx], 1
jne 0x4be12d
cmp dword [ecx + 8], 1
jne 0x4be12d
mov eax, dword [ecx + 4]
add edx, 0xffffffe4
add ecx, 0x1c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x5c]
movzx edx, byte [eax]
mov dword [ebp - 0x10], 0x18
call fcn.00489a3d
mov edx, dword [ebp - 0x28]
jmp 0x4be0f5
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
call fcn.0041b0e1
mov dword [ebp - 0x10], 1
jmp 0x4be152
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
cmp eax, 0x80000000
jne 0x4be790
mov ecx, 0x80000000
call fcn.0041e52f
lea edx, [ebp - 0xb8]
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 1
and dword [edx], 0
mov dword [edx + 4], 4
and dword [edx + 8], 0
call fcn.004bd40c
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0xc8]
je 0x4be728
cmp dword [edx], 2
jne 0x4be2e2
cmp dword [edx + 4], 0
lea eax, [edx + 0x1c]
mov dword [ebp - 0x24], eax
je 0x4be2c5
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
test ecx, ecx
je 0x4be1c3
cmp byte [eax + ecx*2 - 1], 0
js 0x4be2e2
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x10], 0x14
mov dword [ebp - 0x28], ecx
call fcn.00427349
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x28]
and dword [ebp - 0x68], 0
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x10], 0x16
call fcn.004ac758
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x68]
mov edi, dword [ebp - 0x30]
test ebx, ebx
je 0x4be217
mov ecx, dword [ebp - 0x6c]
inc edi
movzx edx, byte [edi - 1]
movzx esi, byte [edi]
add edi, 2
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
inc eax
dec ebx
jne 0x4be202
mov ecx, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
test eax, eax
mov dword [ebp - 0x10], 0x15
mov dword [ebp - 0xb8], ecx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb0], eax
sete byte [ebp - 0xac]
call fcn.004c076d
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
cmp edx, 0x80000000
movsd qword [ebp - 0xdc], xmm0
mov dword [ebp - 0xd4], eax
je 0x4be2e2
mov eax, dword [ebp - 0xd4]
movsd xmm0, qword [ebp - 0xdc]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x10], 0x17
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov dword [ebp - 0x94], edx
lea ecx, [ebp - 0x84]
lea edx, [ebp - 0x94]
call fcn.004bfd97
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x28]
call fcn.0042aff9
mov edx, dword [ebp - 0x24]
jmp 0x4be189
add edx, 8
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x10], 0x14
call fcn.004bfd97
mov edx, dword [ebp - 0x24]
jmp 0x4be189
lea esi, [ebp - 0x84]
mov dword [ebp - 0x5c], 2
mov dword [ebp - 0x10], 1
mov ecx, dword [esi]
mov edx, dword [esi + 4]
call fcn.0042aff9
lea ecx, [ebp - 0x5c]
call fcn.004bfe0e
lea edx, [ebp - 0xb8]
mov ecx, esi
mov byte [ebp - 0x1d], 1
and dword [edx], 0
mov dword [edx + 4], 1
and dword [edx + 8], 0
call fcn.004bd2b1
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0xc8]
je 0x4be75d
cmp dword [edx], 2
jne 0x4be4da
cmp dword [edx + 4], 0
lea eax, [edx + 0x1c]
mov dword [ebp - 0x98], eax
je 0x4be36b
add edx, 8
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x10], 0x10
call fcn.004bfe18
mov edx, dword [ebp - 0x98]
jmp 0x4be32a
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
test ecx, ecx
je 0x4be380
cmp dword [eax + ecx*8 - 4], 0x7f
ja 0x4be4da
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 0x64], ecx
call fcn.004ac800
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov edx, dword [ebp - 0x64]
and dword [ebp - 0x68], 0
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x10], 0x12
call fcn.004ac83d
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x64], 0
mov edx, dword [ebp - 0x68]
je 0x4be429
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x9c], ecx
xor ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [ebp - 0x24], ecx
xor ecx, ecx
mov dword [ebp - 0x30], edx
mov edx, 0x5d6df8
cmp eax, 0x100
mov dword [ebp - 0x3c], eax
setae cl
call fcn.004ac709
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
mov edx, 0x5d6e08
mov eax, dword [ecx + eax*8 + 4]
xor ecx, ecx
cmp eax, 0x100
mov dword [ebp - 0x38], eax
setae cl
call fcn.004ac709
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x3c]
mov byte [eax + edx*2], cl
mov ecx, dword [ebp - 0x38]
mov byte [eax + edx*2 + 1], cl
mov ecx, dword [ebp - 0x24]
inc edx
mov eax, dword [ebp - 0x28]
inc ecx
cmp ecx, dword [ebp - 0x64]
jne 0x4be3c5
mov ecx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x70]
test edx, edx
mov dword [ebp - 0x10], 0x11
mov dword [ebp - 0xb4], ecx
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0xb0], edx
sete byte [ebp - 0xac]
call fcn.004bfee1
mov edx, dword [ebp - 0xb8]
lea eax, [ebp - 0xb4]
movsd xmm0, qword [eax]
mov eax, dword [eax + 8]
cmp edx, 0x80000000
movsd qword [ebp - 0xdc], xmm0
mov dword [ebp - 0xd4], eax
je 0x4be4da
mov eax, dword [ebp - 0xd4]
movsd xmm0, qword [ebp - 0xdc]
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x10], 0x13
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
mov dword [ebp - 0x94], edx
lea ecx, [ebp - 0x84]
lea edx, [ebp - 0x94]
call fcn.004bfe18
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x24]
call fcn.0045c23d
mov edx, dword [ebp - 0x98]
jmp 0x4be32a
mov ecx, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x5c], 2
call fcn.0045c23d
lea ecx, [ebp - 0x5c]
call fcn.004bfe0e
mov eax, dword [ebp - 0xbc]
movsd xmm0, qword [ebp - 0xc4]
cmp eax, 2
mov dword [ebp - 0x114], eax
movsd qword [ebp - 0x11c], xmm0
jb 0x4be600
cmp dword [ebp - 0xcc], 0
je 0x4bee40
mov ecx, dword [ebp - 0x40]
cmp dword [ecx], 6
jne 0x4be600
mov ecx, dword [ebp - 0x40]
mov esi, dword [ecx + 0xc]
test esi, esi
je 0x4be600
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x118]
imul edi, eax, 0x1c
mov ecx, dword [ecx + 8]
add edi, edx
mov dword [ebp - 0x9c], edx
mov ebx, edx
mov edx, esi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], ecx
xor ecx, ecx
xor eax, eax
inc ecx
test al, 1
mov esi, edi
mov dword [ebp - 0x28], edx
je 0x4be57d
cmp ebx, edi
mov edi, ebx
jne 0x4be59a
jmp 0x4bebca
mov eax, edi
xor edx, edx
mov edi, ebx
sub eax, ebx
push 0x1c
pop ebx
div ebx
mov edx, dword [ebp - 0x28]
cmp eax, ecx
jbe 0x4bebca
imul eax, ecx, 0x1c
add edi, eax
cmp dword [edi], 6
jne 0x4be600
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 8]
mov esi, dword [ebp - 0x38]
lea ecx, [edi + 0x1c]
mov dword [ebp - 0x30], ecx
cmp edx, eax
cmovb eax, edx
xor edi, edi
mov edx, eax
mov dword [ebp - 0x24], eax
cmp edx, edi
je 0x4be5d7
mov ecx, esi
mov edx, ebx
call fcn.004b0a74
test al, al
je 0x4be5df
mov edx, dword [ebp - 0x24]
inc edi
add esi, 0x1c
add ebx, 0x1c
jmp 0x4be5ba
mov edi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 0x30]
jmp 0x4be5f4
mov edx, dword [ebp - 0x28]
mov ecx, edi
mov ebx, dword [ebp - 0x30]
cmp edi, edx
mov edi, dword [ebp - 0x3c]
ja 0x4bee93
mov edx, ecx
xor ecx, ecx
mov al, 1
test edx, edx
jne 0x4be569
mov eax, dword [ebp - 0xbc]
movsd xmm0, qword [ebp - 0xc4]
mov dword [ebp - 0x100], eax
movsd qword [ebp - 0x108], xmm0
mov eax, dword [ebp - 0x100]
movsd xmm0, qword [ebp - 0x108]
lea esi, [ebp - 0x5c]
mov dword [ebp - 0xbc], eax
movsd qword [ebp - 0xc4], xmm0
imul eax, eax, 0x1c
mov ecx, dword [ebp - 0xc0]
add eax, ecx
mov dword [esi + 8], ecx
mov ecx, esi
mov dword [esi + 0xc], eax
and dword [esi], 0
call fcn.004bfeae
mov ecx, esi
neg eax
mov edi, 0
sbb edi, edi
call fcn.004bfeae
test eax, eax
je 0x4be8f2
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [ebp - 0x98], ecx
jmp 0x4be8fc
mov eax, dword [ebp - 0x5c]
cmp eax, 0x80000000
je 0x4be0c0
mov ecx, dword [ebp - 0x58]
mov byte [ebp - 0x5d], 1
mov dword [ebp - 0x10], 6
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xb4], eax
lea esi, [ecx + edx*4]
mov dword [ebp - 0xb0], ecx
mov ecx, edx
mov dword [ebp - 0xac], esi
call fcn.00427349
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x10], 7
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xac]
and dword [ecx + 8], 0
sub edx, dword [ebp - 0xb0]
shr edx, 2
call fcn.004ac758
movsd xmm0, qword [ebp - 0xb8]
movsd xmm1, qword [ebp - 0xb0]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x7c]
movsd qword [ebp - 0x54], xmm1
movsd qword [ebp - 0x5c], xmm0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
cmp ecx, edx
je 0x4be886
mov edi, dword [ecx]
add ecx, 4
mov dword [eax + esi*8], edi
mov dword [eax + esi*8 + 4], edi
inc esi
jmp 0x4be711
movsd xmm0, qword [ebp - 0x84]
movsd xmm1, qword [ebp - 0x7c]
lea edx, [ebp - 0x5c]
mov ecx, dword [ebp - 0x74]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 1
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm0
and dword [edx], 0
call fcn.004bca44
jmp 0x4bdfc0
movsd xmm0, qword [ebp - 0x84]
movsd xmm1, qword [ebp - 0x7c]
mov ecx, dword [ebp - 0x74]
xor eax, eax
lea edx, [ebp - 0x5c]
mov byte [ebp - 0x1d], 1
inc eax
mov dword [ebp - 0x10], eax
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm0
mov dword [edx], eax
call fcn.004bca44
jmp 0x4bdfc0
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xb0], edx
mov byte [ebp - 0x5e], 1
mov dword [ebp - 0x10], 3
lea esi, [edx + ecx]
mov dword [ebp - 0xac], esi
call fcn.004ac800
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x10], 4
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov edx, dword [ebp - 0xac]
and dword [ecx + 8], 0
sub edx, dword [ebp - 0xb0]
call fcn.004ac83d
movsd xmm0, qword [ebp - 0xb8]
movsd xmm1, qword [ebp - 0xb0]
mov eax, dword [ebp - 0x80]
mov esi, dword [ebp - 0x7c]
movsd qword [ebp - 0x54], xmm1
movsd qword [ebp - 0x5c], xmm0
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x50]
cmp ecx, edx
je 0x4be81c
mov bl, byte [ecx]
inc ecx
mov byte [eax + esi*2], bl
mov byte [eax + esi*2 + 1], bl
inc esi
jmp 0x4be80b
lea ecx, [ebp - 0x5c]
mov dword [ecx + 8], edx
call fcn.004194fd
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
lea ecx, [ebp - 0x94]
test esi, esi
mov dword [ebp - 0x10], 2
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], esi
sete byte [ecx + 0xc]
call fcn.004bfee1
movsd xmm0, qword [ebp - 0x94]
movsd xmm1, qword [ebp - 0x8c]
mov ecx, dword [ebp - 0x74]
xor eax, eax
lea edx, [ebp - 0x5c]
mov byte [ebp - 0x1d], 1
inc eax
mov dword [ebp - 0x10], eax
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm0
mov dword [edx], eax
call fcn.004bca44
jmp 0x4bdfc0
lea ecx, [ebp - 0x5c]
mov dword [ecx + 8], edx
call fcn.0042d910
mov eax, dword [ebp - 0x84]
mov edx, dword [ebp - 0x80]
lea ecx, [ebp - 0x94]
test esi, esi
mov dword [ebp - 0x10], 5
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov dword [ecx + 8], esi
sete byte [ecx + 0xc]
call fcn.004c076d
movsd xmm0, qword [ebp - 0x94]
movsd xmm1, qword [ebp - 0x8c]
lea edx, [ebp - 0x5c]
mov ecx, dword [ebp - 0x74]
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 1
movsd qword [edx + 0xc], xmm1
movsd qword [edx + 4], xmm0
and dword [edx], 0
call fcn.004bca44
jmp 0x4bdfc0
mov dword [ebp - 0x98], 0
mov eax, dword [ebp - 0x58]
cmp dword [ebp - 0x5c], 0
mov cl, 1
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x64], 0
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0x30], ecx
mov cl, 1
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x110], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x10c], eax
sete al
xor edi, edi
xor ecx, ecx
xor ebx, ebx
mov edx, dword [ebp - 0xd0]
mov ah, cl
mov ecx, edi
mov edi, ecx
mov cl, ah
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xf0], edi
test al, 1
mov dword [ebp - 0x24], esi
je 0x4be9a4
mov eax, dword [ebp - 0x40]
cmp eax, dword [ebp - 0x10c]
je 0x4beb12
mov eax, dword [ebp - 0x40]
lea esi, [eax + 0x1c]
add eax, 0x18
mov dword [ebp - 0x40], esi
jmp 0x4be9b2
mov eax, dword [ebp - 0x110]
test eax, eax
je 0x4beb12
mov edi, dword [eax]
test byte [ebp - 0x38], 1
je 0x4be9c6
cmp byte [edi + 0x30], 0
setne al
mov dword [ebp - 0x38], eax
jmp 0x4be9cd
mov dword [ebp - 0x38], 0
add ebx, dword [edi + 0x2c]
mov ecx, edx
mov eax, 0xffffffff
jb 0x4be9db
mov eax, ebx
mov esi, dword [edi + 0x10]
mov edx, dword [ebp - 0x98]
mov ebx, eax
mov eax, esi
or eax, edx
sete al
test edx, edx
je 0x4bea08
test esi, esi
mov esi, dword [ebp - 0x24]
mov edx, ecx
je 0x4bea0d
mov eax, dword [ebp - 0xf4]
cmp eax, dword [edi + 0x14]
sete al
jmp 0x4bea0d
mov esi, dword [ebp - 0x24]
mov edx, ecx
mov ecx, dword [ebp - 0xcc]
test al, al
jne 0x4bea21
mov dword [ebp - 0x98], 0
test byte [ebp - 0x30], 1
mov eax, 0
je 0x4bea33
cmp byte [edi + 0x31], 0
setne al
test byte [ebp - 0xfc], 1
mov dword [ebp - 0x30], eax
jne 0x4bea76
cmp dword [edi], 0
je 0x4bea6c
mov eax, dword [edi + 4]
test edx, edx
sete cl
cmp eax, esi
setb ch
or ch, cl
mov ecx, esi
mov esi, 1
jne 0x4bea60
mov eax, ecx
mov esi, edx
mov ecx, dword [ebp - 0xcc]
mov edx, esi
mov esi, eax
jmp 0x4bea76
mov al, 1
xor edx, edx
mov dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0xc8]
or eax, dword [edi + 0x18]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x9c]
and eax, dword [edi + 0x1c]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x28]
and eax, dword [edi + 0x20]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x64]
or eax, dword [edi + 0x24]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x3c]
or eax, dword [edi + 0x28]
test cl, cl
mov dword [ebp - 0x3c], eax
mov al, 1
jne 0x4be980
xor ecx, ecx
cmp dword [edi + 8], 0
mov ah, 1
je 0x4be970
mov eax, esi
mov dword [ebp - 0xd0], edx
mov edx, dword [ebp - 0xf0]
mov esi, dword [edi + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0xec]
mov edi, dword [ebp - 0x24]
test edx, edx
sete cl
cmp esi, eax
seta ch
or ch, cl
mov ecx, dword [ebp - 0xcc]
cmovne eax, esi
mov esi, edi
mov dword [ebp - 0xec], eax
mov eax, 1
cmovne edx, eax
mov al, 1
mov edi, edx
jmp 0x4be966
mov dword [ebp - 0xd0], edx
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x1d], 1
mov dword [ebp - 0x10], 1
push 0x34
pop ecx
push 4
pop edx
call fcn.0042029e
mov ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x74]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xf0]
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xec]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp - 0x98]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0xf4]
mov dword [eax + 0x14], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax + 0x18], ecx
mov ecx, dword [ebp - 0x9c]
mov dword [eax + 0x1c], ecx
mov ecx, dword [ebp - 0x28]
mov dword [eax + 0x20], ecx
mov ecx, dword [ebp - 0x64]
mov dword [eax + 0x24], ecx
mov ecx, dword [ebp - 0x3c]
mov dword [eax + 0x28], ecx
mov ecx, dword [ebp - 0x40]
mov dword [eax + 0x2c], ecx
mov ecx, dword [ebp - 0x38]
and cl, 1
mov byte [eax + 0x30], cl
mov ecx, dword [ebp - 0x30]
mov byte [eax + 0x31], 0
and cl, 1
mov byte [eax + 0x32], cl
mov ecx, dword [ebp - 0xbc]
movsd xmm0, qword [ebp - 0xc4]
mov dword [edx + 0xc], ecx
movsd qword [edx + 4], xmm0
mov dword [edx], 7
mov dword [edx + 0x18], eax
jmp 0x4bdfd3
lea eax, [ebp - 0xe8]
mov edi, edx
and dword [eax], 0
push 4
pop edx
mov dword [eax + 4], edx
and dword [eax + 8], 0
lea eax, [ebp - 0xdc]
mov ecx, dword [ebp - 0x9c]
and dword [eax], 0
mov dword [eax + 4], edx
and dword [eax + 8], 0
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0xb8]
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x88], esi
add eax, edx
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x5c]
add edx, eax
imul eax, edi, 0x1c
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x64], eax
cmp ecx, esi
je 0x4bed63
lea eax, [ecx + 0x1c]
mov dword [ebp - 0x8c], eax
mov eax, dword [ecx]
cmp eax, 8
je 0x4bed63
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0xb8]
movsd xmm0, qword [ecx + 0x14]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx + 4]
movsd xmm1, qword [ecx + 0xc]
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x10], 0xc
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
call fcn.004bfe88
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x5c], 6
jne 0x4bee77
mov ecx, dword [ebp - 0x38]
mov edx, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov ecx, edx
mov dword [ebp - 0x68], edx
movsd qword [ebp - 0x70], xmm0
sub ecx, eax
jb 0x4bee5c
mov byte [ebp - 0x29], 1
mov dword [ebp - 0x10], 0xe
mov dword [ebp - 0x24], ecx
call fcn.004b036c
mov esi, eax
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
mov edi, edx
mov dword [ebp - 0x68], eax
imul ecx, ebx, 0x1c
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x64]
push ecx
push eax
push edx
call fcn.0058a110
add esp, 0xc
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0x84]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0x80], edi
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 0x29], 1
call fcn.004bf239
lea ecx, [ebp - 0xdc]
lea edx, [ebp - 0x5c]
mov byte [ebp - 0x29], 1
call fcn.004acfdb
cmp dword [ebp - 0xe0], 0
je 0x4bed2a
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x10], 0xc
call fcn.00477b89
jmp 0x4bed52
lea ecx, [ebp - 0xe8]
mov dword [ebp - 0x10], 0xf
call fcn.00477b89
mov eax, dword [ebp - 0x68]
movsd xmm0, qword [ebp - 0x70]
mov dword [ebp - 0xe0], eax
movsd qword [ebp - 0xe8], xmm0
mov ecx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x88]
jmp 0x4bec2c
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x10], 0xa
call fcn.004ac9a9
mov eax, dword [ebp - 0xe0]
movsd xmm0, qword [ebp - 0xe8]
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0xdc]
mov byte [ebp - 0x31], 1
mov dword [ebp - 0x10], 0xb
mov dword [ebp - 0x8c], eax
movsd qword [ebp - 0x94], xmm0
call fcn.004bdd9c
lea ecx, [ebp - 0x94]
lea edx, [ebp - 0x5c]
mov byte [ebp - 0x31], 1
call fcn.004acfdb
lea ecx, [ebp - 0x5c]
lea edx, [ebp - 0x94]
mov byte [ebp - 0x31], 0
call fcn.004bf239
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x5c]
movsd xmm0, qword [ebp - 0x58]
movsd xmm1, qword [ebp - 0x4c]
mov dword [ebp - 0x100], ecx
mov ecx, dword [ebp - 0x44]
cmp eax, 8
movsd qword [ebp - 0x108], xmm0
movsd qword [ebp - 0x128], xmm1
mov dword [ebp - 0x120], ecx
je 0x4be61c
mov ecx, dword [ebp - 0x100]
mov edx, dword [ebp - 0x74]
movsd xmm0, qword [ebp - 0x108]
movsd xmm1, qword [ebp - 0x128]
mov dword [edx + 0xc], ecx
mov ecx, dword [ebp - 0x120]
movsd qword [edx + 4], xmm0
movsd qword [edx + 0x10], xmm1
mov dword [edx + 0x18], ecx
mov dword [edx], eax
jmp 0x4bdfd3
mov byte [ebp - 0x2b], 0
mov dword [ebp - 0x10], 8
xor ecx, ecx
xor edx, edx
push 0x5d6e80
call fcn.0059a1e0
pop eax
jmp 0x4beea9
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 0x29], 1
mov dword [ebp - 0x10], 0xe
push 0x6478f0
call fcn.00599fa0
pop eax
jmp 0x4beea9
mov dword [ebp - 0x10], 0xd
push 0x28
pop edx
mov ecx, 0x651fc6
push 0x5d6e90
call fcn.0059a2a0
pop eax
jmp 0x4beea9
mov byte [ebp - 0x2b], 0
mov dword [ebp - 0x10], 8
push 0x5d6ea0
call fcn.0059a240
pop eax
ud2