Function at 0xcff830
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xac
mov edx, dword [ebp + 8]
movzx eax, word [ebp + 0x10]
cmp word [edx + 0x166], 0
mov word [ebp - 0x88], ax
je 0xcfff09
cmp word [edx + 0x162], 0
jne 0xd00118
mov eax, dword [ebp + 8]
movzx ebx, word [eax]
movsx eax, bx
mov edx, eax
shl edx, 0xa
movsx ecx, dx
mov edx, ecx
sar edx, 0xa
cmp eax, edx
je 0xcff88c
sar bx, 0xf
xor bx, 0x7fff
movsx ecx, bx
mov edx, dword [ebp + 8]
mov edi, 0x4000
mov word [ebp - 0x86], 0x4000
movsx eax, word [edx + 2]
imul eax, ecx
mov edx, eax
mov ebx, eax
sar edx, 0x1f
sar eax, 0x1e
mov ecx, edx
sar ebx, 0xf
xor cx, 0x7fff
cmp eax, edx
cmove ecx, ebx
cmp cx, 0x400
jle 0xd0040e
mov edx, dword [ebp + 8]
mov esi, 0x7fffffff
mov ecx, dword [ebp + 8]
movsx eax, word [edx + 4]
imul eax, edi
cmp eax, 0x40000000
lea edx, [eax + eax]
movsx eax, word [ecx + 0xa]
cmove edx, esi
mov dword [ebp - 0x84], edx
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov eax, dword [ebp + 0x14]
cmovne edx, ebx
mov word [eax], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0xc]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 2], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0xe]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 4], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x10]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 6], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x12]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 8], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x14]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0xa], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x16]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0xc], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x18]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0xe], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x1a]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x10], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x1c]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x12], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x1e]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x14], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x20]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x16], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x22]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x18], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x24]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x1a], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x26]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
mov word [ecx + 0x1c], dx
mov edx, dword [ebp + 8]
movsx eax, word [edx + 0x28]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
sar edx, 0xf
xor ebx, 0x7fff
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
mov eax, 0x4000
cmovne edx, ebx
sub ax, word [ebp - 0x86]
mov word [ecx + 0x1e], dx
mov edx, dword [ebp + 8]
movsx edi, ax
mov ecx, dword [ebp - 0x84]
movsx eax, word [edx + 6]
imul eax, edi
cmp eax, 0x40000000
lea edx, [eax + eax]
cmove edx, esi
lea eax, [edx + ecx]
xor edx, ecx
js 0xcffbd0
xor ecx, eax
js 0xd00617
mov dword [ebp - 0x20], eax
xor esi, esi
mov edx, dword [ebp + 8]
movsx eax, word [edx + esi*2 + 0x2a]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 0x14]
cmovne edx, ebx
movsx edx, dx
movsx eax, word [ecx + esi*2]
add edx, eax
mov eax, edx
mov ecx, edx
sar eax, 0x1f
sar ecx, 0xf
mov ebx, eax
xor ebx, 0x7fff
cmp ecx, eax
cmove ebx, edx
movsx edx, bx
lea ecx, [edx + edx]
movsx eax, cx
sar eax, 1
cmp edx, eax
je 0xcffc37
mov ecx, ebx
sar cx, 0xf
xor cx, 0x7fff
mov eax, dword [ebp + 0x14]
mov word [eax + esi*2], cx
add esi, 1
cmp esi, 0x10
jne 0xcffbd5
mov edx, dword [ebp + 8]
cmp word [edx + 0x16e], 0
jne 0xd0053d
mov ebx, dword [ebp - 0x20]
mov esi, ebx
mov ecx, ebx
sar esi, 0x19
sar ecx, 9
mov eax, esi
shl eax, 0x10
mov edx, ecx
sub edx, eax
xor eax, ecx
js 0xd005bf
sar edx, 1
movsx eax, dx
mov dword [ebp - 0x20], ecx
mov dword [esp + 4], eax
lea eax, [esi + 0xf]
cwde
mov dword [esp], eax
call fcn.00d05fb0
mov ebx, eax
mov dword [esp], eax
mov edi, ebx
mov ebx, 1
call fcn.00d04bc0
mov esi, dword [ebp + 8]
add esi, 0x4a
mov edx, eax
mov ecx, eax
neg edx
mov word [ebp - 0x7a], dx
shl edi, cl
mov dword [esp], esi
sar edi, 0x10
call fcn.00d03f50
mov ecx, dword [ebp + 0xc]
sar ax, 4
mov word [ecx], ax
mov dword [esp], esi
call fcn.00d03f50
mov edx, dword [ebp + 0xc]
sar ax, 4
mov word [edx + ebx*2], ax
add ebx, 1
cmp ebx, 0x100
jne 0xcffcc5
lea ebx, [ebp - 0x1a]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x100
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00d060c0
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00d05ef0
movsx eax, word [ebp - 0x22]
imul eax, edi
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
sar eax, 0x1e
mov ebx, ecx
sar edx, 0xf
xor ebx, 0x7fff
cmp eax, ecx
movzx eax, word [ebp - 0x1a]
cmovne edx, ebx
movsx edx, dx
mov dword [ebp - 0x80], edx
movzx edx, word [ebp - 0x7a]
add eax, 0x13
lea edi, [eax + edx]
xor edx, edx
mov ecx, edi
and ecx, 0xf
cmp di, 0xffff
mov word [ebp - 0x1a], di
mov dword [ebp - 0x8c], ecx
jle 0xcffe10
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax + edx*2]
imul ecx, dword [ebp - 0x80]
mov ebx, ecx
mov eax, ecx
sar ebx, 0x1f
sar ecx, 0x1e
mov esi, ebx
xor esi, 0x7fff
sar eax, 0xf
cmp ecx, ebx
movzx ecx, byte [ebp - 0x8c]
cmovne eax, esi
movsx ebx, ax
mov esi, ebx
shl esi, cl
mov word [ebp - 0xa8], ax
movsx eax, si
sar eax, cl
cmp ebx, eax
je 0xcffdb6
movzx esi, word [ebp - 0xa8]
sar si, 0xf
xor si, 0x7fff
mov eax, dword [ebp + 0xc]
mov word [eax + edx*2], si
add edx, 1
cmp edx, 0x100
jne 0xcffd66
cmp word [ebp - 0x88], 2
je 0xd0055f
mov eax, dword [ebp + 8]
cmp word [eax + 0x162], 0
je 0xcffe02
cmp word [eax + 0x164], 0
je 0xd000fd
mov edx, dword [ebp + 8]
mov word [edx], 0
mov word [edx + 0x16a], 1
add esp, 0xac
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx ecx, word [eax + edx*2]
imul ecx, dword [ebp - 0x80]
mov ebx, ecx
mov eax, ecx
sar ebx, 0x1f
sar ecx, 0x1e
mov esi, ebx
sar eax, 0xf
xor esi, 0x7fff
cmp ecx, ebx
mov ecx, edi
cmovne eax, esi
neg ecx
and ecx, 0xf
movsx ebx, ax
sar ebx, cl
mov ecx, dword [ebp + 0xc]
mov word [ecx + edx*2], bx
add edx, 1
cmp edx, 0x100
jne 0xcffe10
jmp 0xcffdc8
sar dx, 1
xor eax, eax
add dx, 0x400
cmovns eax, edx
mov edx, dword [ebp + 8]
sar ebx, 3
mov word [edx + 4], ax
mov eax, dword [ebp - 0x74]
mov word [edx + 0x28], bx
sar eax, 3
mov word [edx + 0xa], ax
mov eax, dword [ebp - 0x70]
sar eax, 3
mov word [edx + 0xc], ax
mov eax, dword [ebp - 0x6c]
sar eax, 3
mov word [edx + 0xe], ax
mov eax, dword [ebp - 0x68]
sar eax, 3
mov word [edx + 0x10], ax
mov eax, dword [ebp - 0x64]
sar eax, 3
mov word [edx + 0x12], ax
mov eax, dword [ebp - 0x60]
sar eax, 3
mov word [edx + 0x14], ax
mov eax, dword [ebp - 0x5c]
sar eax, 3
mov word [edx + 0x16], ax
mov eax, dword [ebp - 0x58]
sar eax, 3
mov word [edx + 0x18], ax
mov eax, dword [ebp - 0x54]
sar eax, 3
mov word [edx + 0x1a], ax
mov eax, dword [ebp - 0x50]
sar eax, 3
mov word [edx + 0x1c], ax
mov eax, dword [ebp - 0x4c]
sar eax, 3
mov word [edx + 0x1e], ax
mov eax, dword [ebp - 0x48]
sar eax, 3
mov word [edx + 0x20], ax
mov eax, dword [ebp - 0x44]
sar eax, 3
mov word [edx + 0x22], ax
mov eax, dword [ebp - 0x40]
sar eax, 3
mov word [edx + 0x24], ax
mov eax, dword [ebp - 0x3c]
sar eax, 3
mov word [edx + 0x26], ax
mov ecx, dword [ebp + 8]
cmp word [ecx + 0x162], 0
je 0xcff866
mov eax, dword [ecx + 0xa]
mov edi, ecx
mov esi, ecx
add edi, 0xa
add esi, 0x2a
mov dword [ecx + 0x2a], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
movzx eax, word [ecx + 4]
cmp word [ecx + 0x164], 0
mov word [ecx + 6], ax
je 0xd000c9
movzx ebx, word [ecx]
mov eax, 0x7fff
cmp bx, 0x20
jg 0xcfffa0
cmp bx, 1
jle 0xd0062a
movsx eax, bx
mov edx, eax
shl edx, 0xa
movsx ecx, dx
mov edx, ecx
sar edx, 0xa
cmp eax, edx
je 0xcfffa3
mov eax, ebx
sar ax, 0xf
xor ax, 0x7fff
movsx ecx, ax
mov dword [esp + 4], ecx
mov dword [esp], 0x400
call fcn.00d05dc0
mov edx, dword [ebp + 8]
mov word [edx + 2], ax
mov eax, dword [ebp + 0x18]
mov dword [esp], 6
mov dword [esp + 4], eax
call fcn.00d03ea0
mov edx, dword [ebp + 0x18]
mov word [ebp - 0x32], ax
mov dword [esp + 4], edx
mov dword [esp], 6
call fcn.00d03ea0
mov ecx, dword [ebp + 0x18]
mov word [ebp - 0x30], ax
mov dword [esp + 4], ecx
mov dword [esp], 6
call fcn.00d03ea0
mov word [ebp - 0x2e], ax
mov eax, dword [ebp + 0x18]
mov dword [esp], 5
mov dword [esp + 4], eax
call fcn.00d03ea0
mov edx, dword [ebp + 0x18]
mov word [ebp - 0x2c], ax
mov dword [esp + 4], edx
mov dword [esp], 5
call fcn.00d03ea0
mov word [ebp - 0x2a], ax
lea eax, [ebp - 0x32]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00d06650
mov ecx, dword [ebp + 0x18]
mov dword [esp], 6
mov dword [esp + 4], ecx
call fcn.00d03ea0
mov ebx, eax
mov eax, dword [ebp + 0x18]
mov dword [esp], eax
call fcn.00d03f30
mov edx, dword [ebp + 8]
mov word [edx + 0x16e], ax
movsx edx, bx
mov eax, edx
shl eax, 9
movsx ecx, ax
mov eax, ecx
sar eax, 9
cmp edx, eax
je 0xd00086
sar bx, 0xf
xor bx, 0x7fff
movsx ecx, bx
imul eax, ecx, 0x30c3
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
mov ebx, ecx
sar eax, 0x1e
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
mov ecx, dword [ebp + 8]
cmovne edx, ebx
cmp word [ecx + 0x16a], 0
mov word [ecx + 4], dx
je 0xd005d9
cmp word [ecx + 0x168], 0
je 0xd005d9
mov ecx, dword [ebp + 8]
cmp word [ecx + 0x162], 0
je 0xcff866
cmp word [ecx + 0x164], 0
je 0xcff866
xor edi, edi
mov word [ecx], 0
mov word [ebp - 0x86], 0
jmp 0xcff8c8
cmp word [eax + 0x166], 0
jne 0xcffdf1
add esp, 0xac
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [edx + 0x15c]
xor ebx, ebx
xor ecx, ecx
lea edx, [eax + 1]
cmp dx, 8
je 0xd00134
movsx ebx, dx
mov ecx, ebx
shl ecx, 5
mov edx, dword [ebp + 8]
cwde
xor edi, edi
shl eax, 5
add edx, 0x4c
lea ecx, [edx + ecx]
add edx, eax
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov eax, dword [edx + 8]
mov dword [ecx + 8], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 0xc], eax
mov eax, dword [edx + 0x10]
mov dword [ecx + 0x10], eax
mov eax, dword [edx + 0x14]
mov dword [ecx + 0x14], eax
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0x1c], eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
movsx eax, word [ecx + 0x15c]
mov esi, ecx
mov word [ecx + 4], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
movzx eax, word [ecx + eax*2 + 0x14c]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov word [ecx + ebx*2 + 0x14c], ax
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
jmp 0xd003b1
movsx eax, word [esi + 0x4e]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x74], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00225
mov eax, ebx
xor eax, ecx
js 0xd0049d
movsx eax, word [esi + 0x50]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x70], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00240
mov eax, ebx
xor eax, ecx
js 0xd004ad
movsx eax, word [esi + 0x52]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd0025b
mov eax, ebx
xor eax, ecx
js 0xd004bd
movsx eax, word [esi + 0x54]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x68], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00276
mov eax, ebx
xor eax, ecx
js 0xd004cd
movsx eax, word [esi + 0x56]
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x64], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00291
mov eax, ebx
xor eax, ecx
js 0xd004dd
movsx eax, word [esi + 0x58]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x60], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd002ac
mov eax, ebx
xor eax, ecx
js 0xd004ed
movsx eax, word [esi + 0x5a]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x5c], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd002c7
mov eax, ebx
xor eax, ecx
js 0xd004fd
movsx eax, word [esi + 0x5c]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x58], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd002e2
mov eax, ebx
xor eax, ecx
js 0xd0050d
movsx eax, word [esi + 0x5e]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x54], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd002fd
mov eax, ebx
xor eax, ecx
js 0xd0051d
movsx eax, word [esi + 0x60]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00318
mov eax, ebx
xor eax, ecx
js 0xd0052d
movsx eax, word [esi + 0x62]
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00333
mov eax, ebx
xor eax, ecx
js 0xd0044d
movsx eax, word [esi + 0x64]
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x48], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd0034e
mov eax, ebx
xor eax, ecx
js 0xd0045d
movsx eax, word [esi + 0x66]
mov ecx, dword [ebp - 0x40]
mov dword [ebp - 0x44], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00369
mov eax, ebx
xor eax, ecx
js 0xd0046d
movsx eax, word [esi + 0x68]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x40], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd00384
mov eax, ebx
xor eax, ecx
js 0xd0047d
movsx eax, word [esi + 0x6a]
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ebx
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd0039f
mov eax, ebx
xor eax, ecx
js 0xd0048d
add edi, 1
add esi, 0x20
cmp edi, 8
mov dword [ebp - 0x38], ebx
je 0xcffe58
mov edx, dword [ebp + 8]
movsx eax, word [edx + 4]
movsx edx, word [edx + edi*2 + 0x14c]
add eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov ecx, dword [ebp + 8]
cmovne eax, ebx
mov edx, eax
mov word [ecx + 4], ax
movsx eax, word [esi + 0x4c]
mov ecx, dword [ebp - 0x74]
lea ebx, [ecx + eax]
xor eax, ecx
js 0xd0020a
mov eax, ebx
xor eax, ecx
jns 0xd0020a
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0020a
movsx edx, cx
mov eax, edx
shl eax, 4
movsx edi, ax
mov word [ebp - 0x86], ax
mov eax, edi
sar eax, 4
cmp edx, eax
je 0xcff8c8
sar cx, 0xf
mov word [ebp - 0x86], cx
xor word [ebp - 0x86], 0x7fff
movsx edi, word [ebp - 0x86]
jmp 0xcff8c8
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00333
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0034e
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00369
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00384
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0039f
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00225
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00240
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0025b
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00276
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00291
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd002ac
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd002c7
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd002e2
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd002fd
mov ebx, ecx
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd00318
mov eax, edx
add eax, 0x16c
mov dword [esp + 8], eax
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov ecx, dword [ebp + 0x14]
mov dword [esp], ecx
call fcn.00cfe6d0
jmp 0xcffc57
mov edx, dword [ebp + 8]
mov eax, 0x7fff
movzx ebx, word [edx]
cmp bx, 0x20
jg 0xd0058e
movsx eax, bx
mov edx, eax
shl edx, 0xa
movsx ecx, dx
mov edx, ecx
sar edx, 0xa
cmp eax, edx
je 0xd00591
mov eax, ebx
sar ax, 0xf
xor ax, 0x7fff
movsx ecx, ax
mov dword [esp + 4], ecx
mov dword [esp], 0x400
call fcn.00d05dc0
mov ecx, dword [ebp + 8]
mov word [ecx], 0
mov word [ecx + 2], ax
movzx eax, word [ecx + 4]
sub word [ecx + 4], 0x40
mov word [ecx + 6], ax
jmp 0xcffdd6
mov eax, edx
xor eax, ecx
jns 0xcffc75
mov edx, ebx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xcffc75
mov eax, dword [edi]
mov dword [esi], eax
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [edi + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [edi + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
mov edx, dword [ebp + 8]
movzx eax, word [edx + 4]
mov word [edx + 6], ax
jmp 0xd000c9
mov eax, dword [ebp - 0x84]
sar eax, 0x1f
xor eax, 0x7fffffff
jmp 0xcffbd0
mov ecx, dword [ebp + 8]
mov word [ecx + 2], 0x4000
jmp 0xcfffba