Function at 0x4ce794
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 8
add esp, 0xfffff004
push eax
dec eax
jne 0x4ce79d
mov eax, dword [ebp - 4]
add esp, 0xfffffe74
xor eax, eax
mov dword [ebp - 0x24], eax
xor edx, edx
mov dword [0x7dd804], edx
xor ecx, ecx
mov dword [0x7dd808], ecx
push dword [ebp + 8]
call fcn.0045dc70
pop ecx
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
push 0
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
sub eax, 0xc
sbb edx, 0
push edx
push eax
push dword [ebp + 8]
call fcn.0045dbe8
add esp, 0x10
push dword [ebp + 8]
push 1
push 0xc
lea eax, [ebp - 0x8190]
push eax
call fcn.0045dce4
add esp, 0x10
mov edx, dword [ebp - 0x818c]
cmp edx, 0x4f52454e
jne 0x4ce861
mov eax, dword [ebp - 0x8188]
and eax, 0xff
shl eax, 0x18
mov edx, dword [ebp - 0x8188]
and edx, 0xff00
shl edx, 8
or eax, edx
mov ecx, dword [ebp - 0x8188]
and ecx, 0xff0000
shr ecx, 8
or eax, ecx
mov edx, dword [ebp - 0x8188]
and edx, 0xff000000
shr edx, 0x18
or eax, edx
xor edx, edx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
jmp 0x4ce9af
mov ecx, dword [ebp - 0x8190]
cmp ecx, 0x3552454e
jne 0x4ce9a7
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
and eax, 0xff
xor edx, edx
mov edx, eax
shl edx, 0x18
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
and eax, 0xff00
xor edx, edx
mov edx, eax
shl edx, 8
xor eax, eax
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
and eax, 0xff0000
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
and eax, 0xff000000
xor edx, edx
shld edx, eax, 8
shl eax, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
xor eax, eax
and edx, 0xff
shrd eax, edx, 8
shr edx, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
xor eax, eax
and edx, 0xff00
shrd eax, edx, 0x18
shr edx, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
xor eax, eax
and edx, 0xff0000
mov eax, edx
shr eax, 8
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x818c]
mov edx, dword [ebp - 0x8188]
xor eax, eax
and edx, 0xff000000
mov eax, edx
shr eax, 0x18
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
jmp 0x4ce9af
or eax, 0xffffffff
jmp 0x4cf4fe
mov eax, dword [ebp - 8]
mov ecx, eax
mov eax, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov edx, dword [ebp - 0x14]
test edx, edx
jl 0x4ce9ce
mov ecx, dword [ebp - 0x14]
cmp ecx, 0x8000
jle 0x4ce9d6
or eax, 0xffffffff
jmp 0x4cf4fe
push 0
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp + 8]
call fcn.0045dbe8
add esp, 0x10
push dword [ebp + 8]
push 1
push dword [ebp - 0x14]
lea ecx, [ebp - 0x8080]
push ecx
call fcn.0045dce4
add esp, 0x10
xor eax, eax
mov dword [ebp - 0x2c], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [0x7dd7f8], 1
mov dword [0x7dd7fc], 1
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jge 0x4cf43c
lea edx, [ebp - 0x8080]
mov ecx, dword [ebp - 0x2c]
add edx, ecx
mov dword [ebp - 0x34], edx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax + 4]
and edx, 0xff
shl edx, 0x18
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 4]
and eax, 0xff00
shl eax, 8
or edx, eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 4]
and eax, 0xff0000
shr eax, 8
or edx, eax
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx + 4]
and eax, 0xff000000
shr eax, 0x18
or edx, eax
mov dword [ebp - 0x38], edx
mov byte [ebp - 0x39], 0
mov edx, dword [ebp - 0x34]
mov ecx, dword [edx]
and ecx, 0xff
shl ecx, 0x18
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
and edx, 0xff00
shl edx, 8
or ecx, edx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
and edx, 0xff0000
shr edx, 8
or ecx, edx
mov eax, dword [ebp - 0x34]
mov edx, dword [eax]
and edx, 0xff000000
shr edx, 0x18
or ecx, edx
cmp ecx, 0x45544e46
jg 0x4ceb1c
je 0x4cf418
cmp ecx, 0x44414f58
jg 0x4ceaff
je 0x4cec87
sub ecx, 0x41464e4d
je 0x4cf34f
sub ecx, 0x1fe060b
je 0x4cf409
sub ecx, 0x10f100
je 0x4ceb6d
jmp 0x4cf418
sub ecx, 0x454e4421
je 0x4cf403
sub ecx, 0x60a11
je 0x4cf418
jmp 0x4cf418
cmp ecx, 0x53494e46
jg 0x4ceb50
je 0x4cf418
sub ecx, 0x4d545950
je 0x4cf418
sub ecx, 0xf0f8e5
je 0x4cf418
sub ecx, 0x1a
je 0x4cf418
jmp 0x4cf418
sub ecx, 0x54494e46
je 0x4cf418
sub ecx, 0x205fe07
je 0x4cf3e8
jmp 0x4cf418
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 0x34]
add eax, 8
mov dword [ebp - 0x44], eax
mov ecx, 8
mov eax, dword [ebp - 0x40]
xor edx, edx
div ecx
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx + 4]
and eax, 0xff
shl eax, 0x18
mov edx, dword [ebp - 0x44]
mov ecx, dword [edx + 4]
and ecx, 0xff00
shl ecx, 8
or eax, ecx
mov edx, dword [ebp - 0x44]
mov ecx, dword [edx + 4]
and ecx, 0xff0000
shr ecx, 8
or eax, ecx
mov edx, dword [ebp - 0x44]
mov ecx, dword [edx + 4]
and ecx, 0xff000000
shr ecx, 0x18
or eax, ecx
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x4c], 2
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x40]
cmp eax, edx
jae 0x4cf418
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [eax + ecx*8 + 4]
and eax, 0xff
shl eax, 0x18
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [edx + ecx*8 + 4]
and edx, 0xff00
shl edx, 8
or eax, edx
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ecx + edx*8 + 4]
and ecx, 0xff0000
shr ecx, 8
or eax, ecx
mov edx, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [edx + ecx*8 + 4]
and edx, 0xff000000
shr edx, 0x18
or eax, edx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x4c]
shr eax, 1
mov ecx, dword [0x7dd808]
add eax, ecx
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
mov edx, dword [ebp - 0x48]
mov dword [eax*8 + 0xa8434c], edx
mov ecx, dword [ebp - 0x4c]
shr ecx, 1
mov eax, dword [0x7dd808]
add ecx, eax
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*8]
xor ecx, ecx
mov dword [edx*8 + 0xa8437c], ecx
add dword [ebp - 0x4c], 2
mov eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x40]
cmp eax, edx
jb 0x4cebe4
jmp 0x4cf418
mov ecx, dword [ebp - 0x34]
add ecx, 8
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x54]
mov edx, dword [eax]
and edx, 0xff
shl edx, 0x18
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
and eax, 0xff00
shl eax, 8
or edx, eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
and eax, 0xff0000
shr eax, 8
or edx, eax
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
and eax, 0xff000000
shr eax, 0x18
or edx, eax
mov dword [ebp - 0x58], edx
sub dword [ebp - 0x58], 0x16
mov ecx, 0x2a
mov eax, dword [ebp - 0x58]
xor edx, edx
div ecx
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp - 0x34]
add ecx, 0x1e
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x60], eax
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jae 0x4cee41
imul eax, dword [ebp - 0x60], 0x15
mov edx, dword [ebp - 0x5c]
mov cx, word [edx + eax*2 + 0xc]
and cx, 0xff
shl ecx, 8
imul eax, dword [ebp - 0x60], 0x15
mov edx, dword [ebp - 0x5c]
mov ax, word [edx + eax*2 + 0xc]
and ax, 0xff00
movzx edx, ax
sar edx, 8
or cx, dx
mov word [ebp - 0x62], cx
imul ecx, dword [ebp - 0x60], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0xe]
and edx, 0xff
shl edx, 0x18
imul ecx, dword [ebp - 0x60], 0x15
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + ecx*2 + 0xe]
and ecx, 0xff00
shl ecx, 8
or edx, ecx
imul eax, dword [ebp - 0x60], 0x15
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ecx + eax*2 + 0xe]
and eax, 0xff0000
shr eax, 8
or edx, eax
imul ecx, dword [ebp - 0x60], 0x15
mov eax, dword [ebp - 0x5c]
mov ecx, dword [eax + ecx*2 + 0xe]
and ecx, 0xff000000
shr ecx, 0x18
or edx, ecx
mov dword [ebp - 0x68], edx
mov edx, dword [ebp - 0x68]
cmp edx, 0x7000001
jg 0x4ceda5
je 0x4cedb7
sub edx, 0x2000001
je 0x4cedd2
sub edx, 0x1000000
je 0x4cedd2
jmp 0x4cedf0
sub edx, 0x10000001
je 0x4cedb7
sub edx, 0x1000000
je 0x4cedd2
jmp 0x4cedf0
mov eax, dword [0x7dd808]
mov edx, dword [ebp - 0x60]
add eax, edx
lea ecx, [eax + eax*8]
lea ecx, [ecx + ecx*8]
xor eax, eax
mov dword [ecx*8 + 0xa843a4], eax
jmp 0x4cee0c
mov edx, dword [0x7dd808]
mov ecx, dword [ebp - 0x60]
add edx, ecx
lea eax, [edx + edx*8]
lea eax, [eax + eax*8]
mov dword [eax*8 + 0xa843a4], 2
jmp 0x4cee0c
mov edx, dword [0x7dd808]
mov ecx, dword [ebp - 0x60]
add edx, ecx
lea eax, [edx + edx*8]
lea eax, [eax + eax*8]
mov dword [eax*8 + 0xa843a4], 1
mov edx, dword [ebp - 0x68]
cmp edx, 0x7000001
jne 0x4cee1f
cmp word [ebp - 0x62], 0x930
je 0x4cee29
xor ecx, ecx
mov dword [0x7dd7f8], ecx
jmp 0x4cee30
xor eax, eax
mov dword [0x7dd7fc], eax
inc dword [ebp - 0x60]
mov edx, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jb 0x4cecfd
xor eax, eax
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jae 0x4cf33e
mov eax, dword [0x7dd808]
mov edx, dword [ebp - 0x6c]
add eax, edx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x1c]
inc ecx
mov eax, dword [ebp - 0x60]
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
mov dword [eax*8 + 0xa845e0], ecx
mov edx, dword [ebp - 0x60]
inc edx
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
mov dword [ecx*8 + 0xa843a0], edx
mov eax, dword [ebp - 0x60]
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
mov dword [eax*8 + 0xa8439c], 1
imul edx, dword [ebp - 0x6c], 0x15
mov ecx, dword [ebp - 0x5c]
mov ax, word [ecx + edx*2 + 0xc]
and ax, 0xff
shl eax, 8
imul edx, dword [ebp - 0x6c], 0x15
mov ecx, dword [ebp - 0x5c]
mov dx, word [ecx + edx*2 + 0xc]
and dx, 0xff00
movzx ecx, dx
sar ecx, 8
or ax, cx
movzx eax, ax
mov edx, dword [ebp - 0x60]
lea edx, [edx + edx*8]
lea edx, [edx + edx*8]
mov dword [edx*8 + 0xa843a8], eax
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
mov dword [ecx*8 + 0xa843b0], eax
mov eax, dword [ebp - 0x60]
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
xor edx, edx
mov dword [eax*8 + 0xa843ac], edx
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff
xor edx, edx
mov edx, eax
shl edx, 0x18
xor eax, eax
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff00
xor edx, edx
mov edx, eax
shl edx, 8
xor eax, eax
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff0000
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff000000
xor edx, edx
shld edx, eax, 8
shl eax, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff
shrd eax, edx, 8
shr edx, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff00
shrd eax, edx, 0x18
shr edx, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff0000
mov eax, edx
shr eax, 8
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff000000
mov eax, edx
shr eax, 0x18
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
mov dword [ecx*8 + 0xa843b4], eax
mov dword [ecx*8 + 0xa843b8], edx
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
mov dword [ecx*8 + 0xa845c4], eax
mov dword [ecx*8 + 0xa845c8], edx
imul eax, dword [ebp - 0x6c], 0x15
mov edx, dword [ebp - 0x5c]
lea eax, [edx + eax*2 + 0x22]
mov edx, dword [eax + 4]
mov eax, dword [eax]
and eax, 0xff
xor edx, edx
mov edx, eax
shl edx, 0x18
xor eax, eax
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
and eax, 0xff00
xor edx, edx
mov edx, eax
shl edx, 8
xor eax, eax
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
and eax, 0xff0000
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
and eax, 0xff000000
xor edx, edx
shld edx, eax, 8
shl eax, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
xor eax, eax
and edx, 0xff
shrd eax, edx, 8
shr edx, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
xor eax, eax
and edx, 0xff00
shrd eax, edx, 0x18
shr edx, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
xor eax, eax
and edx, 0xff0000
mov eax, edx
shr eax, 8
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x26]
mov eax, dword [eax + ecx*2 + 0x22]
xor eax, eax
and edx, 0xff000000
mov eax, edx
shr eax, 0x18
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff
xor edx, edx
mov edx, eax
shl edx, 0x18
xor eax, eax
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff00
xor edx, edx
mov edx, eax
shl edx, 8
xor eax, eax
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff0000
xor edx, edx
shld edx, eax, 0x18
shl eax, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
and eax, 0xff000000
xor edx, edx
shld edx, eax, 8
shl eax, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff
shrd eax, edx, 8
shr edx, 8
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff00
shrd eax, edx, 0x18
shr edx, 0x18
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff0000
mov eax, edx
shr eax, 8
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
imul ecx, dword [ebp - 0x6c], 0x15
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + ecx*2 + 0x1e]
mov eax, dword [eax + ecx*2 + 0x1a]
xor eax, eax
and edx, 0xff000000
mov eax, edx
shr eax, 0x18
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov ecx, dword [ebp - 0x60]
lea ecx, [ecx + ecx*8]
lea ecx, [ecx + ecx*8]
mov dword [ecx*8 + 0xa845cc], eax
mov dword [ecx*8 + 0xa845d0], edx
mov eax, dword [ebp - 0x60]
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
mov byte [eax*8 + 0xa843bc], 0
inc dword [ebp - 0x6c]
mov edx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jb 0x4cee54
mov eax, dword [ebp - 0x58]
add dword [0x7dd808], eax
inc dword [ebp - 0x1c]
jmp 0x4cf418
mov edx, dword [ebp - 0x34]
add edx, 8
mov dword [ebp - 0x70], edx
xor ecx, ecx
mov dword [ebp - 0x74], ecx
jmp 0x4cf3d5
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x78], eax
jmp 0x4cf36a
inc dword [ebp - 0x78]
mov edx, dword [ebp - 0x78]
mov cl, byte [edx]
test cl, cl
jne 0x4cf367
push dword [ebp - 0x70]
imul eax, dword [ebp - 0x74], 0x288
add eax, 0xa843bc
push eax
call fcn.0066ce08
add esp, 8
imul edx, dword [ebp - 0x74], 0x288
add edx, 0xa843bc
push edx
call fcn.0066ce38
pop ecx
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
cmp ecx, 3
jle 0x4cf3cb
push 0x7dd855
imul eax, dword [ebp - 0x74], 0x288
mov edx, dword [ebp - 0x30]
add eax, edx
add eax, 0xa843b9
push eax
call fcn.0066ce08
add esp, 8
mov ecx, dword [ebp - 0x78]
inc ecx
mov dword [ebp - 0x70], ecx
inc dword [ebp - 0x74]
mov eax, dword [ebp - 0x74]
mov edx, dword [0x7dd808]
cmp eax, edx
jb 0x4cf35f
jmp 0x4cf418
mov ecx, dword [ebp - 0x34]
add ecx, 8
mov dword [ebp - 0x7c], ecx
push dword [ebp - 0x7c]
push 0x83101c
call fcn.0066ce08
add esp, 8
jmp 0x4cf418
mov byte [ebp - 0x39], 1
jmp 0x4cf418
mov eax, dword [ebp - 0x2c]
add eax, 8
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x28], edx
mov cl, byte [ebp - 0x39]
test cl, cl
jne 0x4cf43c
add dword [ebp - 0x2c], 8
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x38]
add eax, edx
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x14]
cmp ecx, eax
jl 0x4cea2c
mov edx, dword [0x7dd7f8]
test edx, edx
je 0x4cf461
mov ecx, dword [0x7dd7fc]
test ecx, ecx
je 0x4cf461
xor eax, eax
mov dword [0x7dd7f8], eax
mov dword [0x7dd7fc], 1
mov edx, dword [ebp - 0x24]
test edx, edx
je 0x4cf4f7
mov ecx, dword [ebp - 0x28]
add ecx, 4
push ecx
call fcn.0066c62c
pop ecx
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x28]
add eax, 2
shr eax, 8
mov edx, dword [ebp - 0x80]
mov byte [edx], al
mov cl, byte [ebp - 0x28]
add cl, 2
and cl, 0xff
mov eax, dword [ebp - 0x80]
mov byte [eax + 1], cl
mov edx, dword [ebp - 0x80]
mov byte [edx + 2], 1
mov ecx, dword [ebp - 0x80]
mov al, byte [0x7dd808]
mov byte [ecx + 3], al
mov dword [0xa845e4], 1
mov edx, dword [ebp - 0x24]
mov dword [0xa845e8], edx
mov ecx, dword [ebp - 0x28]
mov dword [0xa845ec], ecx
push dword [ebp - 0x28]
lea eax, [ebp - 0x8080]
mov edx, dword [ebp - 0x24]
add eax, edx
push eax
mov ecx, dword [ebp - 0x80]
add ecx, 4
push ecx
call fcn.0066cc18
add esp, 0xc
push dword [ebp - 0x80]
call fcn.004ce38c
pop ecx
push dword [ebp - 0x80]
call fcn.0066c63c
pop ecx
call fcn.004ce6b8
xor eax, eax
mov esp, ebp
pop ebp
ret