Function at 0xd09730
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ec
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
add eax, 0x1e
mov dword [ebp - 0x1d0], eax
movzx eax, word [edx + 0x1e]
mov word [edx + 0x26], ax
sub edx, 2
movsx eax, word [ecx + 2]
mov dword [ebp - 0x18c], edx
movsx edx, word [edx + 2]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
cmovne eax, ebx
mov ecx, dword [ebp - 0x18c]
mov word [ebp - 0x44], ax
mov eax, dword [ebp + 8]
add eax, 4
mov dword [ebp - 0x164], eax
movsx eax, word [edx + 4]
movsx edx, word [ecx + 4]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
cmovne eax, ebx
mov ecx, dword [ebp - 0x18c]
mov word [ebp - 0x42], ax
mov eax, dword [ebp + 8]
movsx edi, word [edx + 6]
add eax, 6
mov dword [ebp - 0x168], eax
movsx eax, word [ecx + 6]
sub edi, eax
mov eax, edi
mov edx, edi
sar eax, 0x1f
sar edx, 0xf
mov ecx, eax
xor ecx, 0x7fff
cmp edx, eax
mov eax, dword [ebp + 8]
cmovne edi, ecx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
mov word [ebp - 0x40], di
add eax, 8
movsx esi, word [edx + 8]
mov dword [ebp - 0x15c], eax
movsx eax, word [ecx + 8]
sub esi, eax
mov eax, esi
mov edx, esi
sar eax, 0x1f
sar edx, 0xf
mov ecx, eax
xor ecx, 0x7fff
cmp edx, eax
cmovne esi, ecx
mov word [ebp - 0x3e], si
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
movsx eax, word [edx + 0xa]
movsx edx, word [ecx + 0xa]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x3c], ax
movsx eax, word [edx + 0xc]
movsx edx, word [ecx + 0xc]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x3a], ax
movsx eax, word [edx + 0xe]
movsx edx, word [ecx + 0xe]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x38], ax
movsx eax, word [edx + 0x10]
movsx edx, word [ecx + 0x10]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x36], ax
movsx eax, word [edx + 0x12]
movsx edx, word [ecx + 0x12]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x34], ax
movsx eax, word [edx + 0x14]
movsx edx, word [ecx + 0x14]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x32], ax
movsx eax, word [edx + 0x16]
movsx edx, word [ecx + 0x16]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
mov word [ebp - 0x30], ax
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
mov word [ebp - 0x1c8], di
mov word [ebp - 0xe8], si
movsx eax, word [edx + 0x18]
movsx edx, word [ecx + 0x18]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
mov word [ebp - 0x2e], ax
movsx eax, word [edx + 0x1a]
movsx edx, word [ecx + 0x1a]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp + 8]
cmovne eax, ebx
mov ecx, dword [ebp - 0x18c]
mov word [ebp - 0x2c], ax
mov eax, dword [ebp + 8]
add eax, 0x1c
mov dword [ebp - 0x1cc], eax
movsx eax, word [edx + 0x1c]
movsx edx, word [ecx + 0x1c]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
mov word [ebp - 0x68], ax
mov word [ebp - 0x2a], ax
movsx eax, di
imul eax, eax, 0xaab
lea edx, [eax + eax]
movsx eax, si
imul eax, eax, 0xaab
add eax, eax
lea ecx, [edx + eax]
xor eax, edx
js 0xd09a44
mov eax, edx
xor eax, ecx
js 0xd0b559
movzx edx, word [ebp - 0x3c]
movsx eax, dx
imul eax, eax, 0xaab
mov word [ebp - 0xd8], dx
add eax, eax
lea edx, [ecx + eax]
xor eax, ecx
js 0xd09a6b
mov eax, edx
xor eax, ecx
js 0xd0b569
movzx ecx, word [ebp - 0x3a]
movsx eax, cx
imul eax, eax, 0xaab
mov word [ebp - 0xc8], cx
add eax, eax
lea ecx, [edx + eax]
xor eax, edx
js 0xd09a92
mov eax, ecx
xor eax, edx
js 0xd0b4d9
movzx edx, word [ebp - 0x38]
movsx eax, dx
imul eax, eax, 0xaab
mov word [ebp - 0xb8], dx
add eax, eax
lea edx, [ecx + eax]
xor eax, ecx
js 0xd09ab9
mov eax, edx
xor eax, ecx
js 0xd0b4e9
movzx ecx, word [ebp - 0x36]
movsx eax, cx
imul eax, eax, 0xaab
mov word [ebp - 0xa8], cx
add eax, eax
lea ecx, [edx + eax]
xor eax, edx
js 0xd09ae0
mov eax, ecx
xor eax, edx
js 0xd0b4f9
movzx edx, word [ebp - 0x34]
movsx eax, dx
imul eax, eax, 0xaab
mov word [ebp - 0x98], dx
add eax, eax
lea edx, [ecx + eax]
xor eax, ecx
js 0xd09b07
mov eax, edx
xor eax, ecx
js 0xd0b509
movzx ecx, word [ebp - 0x32]
movsx eax, cx
imul eax, eax, 0xaab
mov word [ebp - 0x88], cx
add eax, eax
lea ecx, [edx + eax]
xor eax, edx
js 0xd09b2e
mov eax, ecx
xor eax, edx
js 0xd0b519
movzx edx, word [ebp - 0x30]
movsx eax, dx
imul eax, eax, 0xaab
mov word [ebp - 0x78], dx
add eax, eax
lea edx, [ecx + eax]
xor eax, ecx
js 0xd09b52
mov eax, edx
xor eax, ecx
js 0xd0b529
movzx edi, word [ebp - 0x2e]
movsx eax, di
imul eax, eax, 0xaab
add eax, eax
lea ecx, [edx + eax]
xor eax, edx
js 0xd09b72
mov eax, ecx
xor eax, edx
js 0xd0b539
movzx ebx, word [ebp - 0x2c]
movsx eax, bx
imul eax, eax, 0xaab
add eax, eax
lea edx, [ecx + eax]
xor eax, ecx
js 0xd09b92
mov eax, edx
xor eax, ecx
js 0xd0b549
movsx eax, word [ebp - 0x68]
imul eax, eax, 0xaab
add eax, eax
lea ecx, [eax + edx]
xor eax, edx
js 0xd09baf
mov eax, ecx
xor eax, edx
js 0xd0b579
cmp ecx, 0x7fffffff
mov word [ebp - 0x188], 0x7fff
mov dword [ebp - 0x4c], 0x7fff
je 0xd09bdd
lea eax, [ecx + 0x8000]
shr eax, 0x10
movsx edx, ax
mov word [ebp - 0x188], ax
mov dword [ebp - 0x4c], edx
movzx esi, word [ebp - 0x44]
xor eax, eax
movzx edx, word [ebp - 0x42]
movzx ecx, word [ebp - 0x1c8]
test si, si
cmovns eax, esi
cmp ax, dx
cmovl eax, edx
movzx edx, word [ebp - 0xe8]
cmp word [ebp - 0x1c8], ax
cmovge eax, ecx
movzx ecx, word [ebp - 0xd8]
cmp word [ebp - 0xe8], ax
cmovge eax, edx
movzx edx, word [ebp - 0xc8]
cmp word [ebp - 0xd8], ax
cmovge eax, ecx
movzx ecx, word [ebp - 0xb8]
cmp word [ebp - 0xc8], ax
cmovge eax, edx
movzx edx, word [ebp - 0xa8]
cmp word [ebp - 0xb8], ax
cmovge eax, ecx
movzx ecx, word [ebp - 0x98]
cmp word [ebp - 0xa8], ax
cmovge eax, edx
movzx edx, word [ebp - 0x88]
cmp word [ebp - 0x98], ax
cmovge eax, ecx
movzx ecx, word [ebp - 0x78]
cmp word [ebp - 0x88], ax
cmovge eax, edx
movzx edx, word [ebp - 0x68]
cmp word [ebp - 0x78], ax
cmovge eax, ecx
cmp di, ax
cmovge eax, edi
cmp bx, ax
cmovge eax, ebx
cmp word [ebp - 0x68], ax
cmovge eax, edx
cwde
mov dword [esp], eax
call fcn.00d04bc0
sub ax, 0x10
js 0xd0b5a9
mov ebx, eax
movsx edx, si
and ebx, 0xf
mov edi, edx
mov ecx, ebx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09cd2
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x42]
mov ecx, ebx
mov word [ebp - 0x44], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09cf7
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x40]
mov ecx, ebx
mov word [ebp - 0x42], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09d1c
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x3e]
mov ecx, ebx
mov word [ebp - 0x40], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09d41
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x3c]
mov ecx, ebx
mov word [ebp - 0x3e], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09d66
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x3a]
mov ecx, ebx
mov word [ebp - 0x3c], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09d8b
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x38]
mov ecx, ebx
mov word [ebp - 0x3a], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09db0
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x36]
mov ecx, ebx
mov word [ebp - 0x38], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09dd5
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x34]
mov ecx, ebx
mov word [ebp - 0x36], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09dfa
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x32]
mov ecx, ebx
mov word [ebp - 0x34], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09e1f
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x30]
mov ecx, ebx
mov word [ebp - 0x32], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09e44
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x2e]
mov ecx, ebx
mov word [ebp - 0x30], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09e69
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x2c]
mov ecx, ebx
mov word [ebp - 0x2e], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09e8e
mov edi, esi
sar di, 0xf
xor di, 0x7fff
movzx esi, word [ebp - 0x2a]
mov ecx, ebx
mov word [ebp - 0x2c], di
movsx edx, si
mov edi, edx
shl edi, cl
movsx eax, di
sar eax, cl
cmp edx, eax
je 0xd09eb3
mov edi, esi
sar di, 0xf
xor di, 0x7fff
mov eax, dword [ebp - 0x4c]
mov ecx, ebx
mov word [ebp - 0x2a], di
shl eax, cl
cwde
mov dword [ebp - 0x174], eax
sar eax, cl
cmp eax, dword [ebp - 0x4c]
je 0xd0b345
sar word [ebp - 0x188], 0xf
xor word [ebp - 0x188], 0x7fff
movsx edx, word [ebp - 0x188]
mov dword [ebp - 0x174], edx
mov eax, edx
movsx ecx, word [ebp - 0x36]
mov ebx, 0x7fffffff
sub ecx, eax
mov dword [ebp - 0x140], ecx
mov edx, dword [ebp - 0x140]
sar ecx, 0xf
mov dword [ebp - 0x108], ecx
sar edx, 0x1f
mov dword [ebp - 0x120], edx
mov eax, dword [ebp - 0x120]
xor edx, 0x7fff
cmp ecx, eax
mov eax, dword [ebp - 0x174]
movsx ecx, word [ebp - 0x3a]
cmove edx, dword [ebp - 0x140]
sub ecx, eax
movsx edx, dx
mov dword [ebp - 0x13c], ecx
sar ecx, 0xf
mov dword [ebp - 0x1a4], ecx
mov ecx, dword [ebp - 0x13c]
sar ecx, 0x1f
mov eax, ecx
xor eax, 0x7fff
cmp dword [ebp - 0x1a4], ecx
cmove eax, dword [ebp - 0x13c]
mov dword [ebp - 0x1a8], ecx
lea ecx, [ebp - 0x1a]
mov dword [esp + 4], ecx
cwde
imul eax, edx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmove edx, ebx
lea eax, [ebp - 0x1c]
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
mov edx, dword [ebp - 0x174]
mov esi, eax
movsx eax, word [ebp - 0x34]
sub eax, edx
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
sar eax, 0xf
mov dword [ebp - 0x104], eax
sar ecx, 0x1f
mov edx, ecx
mov dword [ebp - 0x11c], ecx
xor edx, 0x7fff
cmp eax, ecx
mov ecx, dword [ebp - 0x174]
movsx eax, word [ebp - 0x38]
cmove edx, dword [ebp - 0x138]
sub eax, ecx
movsx edx, dx
mov dword [ebp - 0x134], eax
sar eax, 0xf
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0x134]
sar eax, 0x1f
mov dword [ebp - 0xf0], eax
mov ecx, dword [ebp - 0xf0]
xor eax, 0x7fff
cmp dword [ebp - 0xec], ecx
cmove eax, dword [ebp - 0x134]
cwde
imul eax, edx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmovne ebx, edx
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a084
mov ecx, esi
xor ecx, ebx
js 0xd0b3c9
mov edx, dword [ebp - 0x174]
movsx eax, word [ebp - 0x32]
sub eax, edx
mov dword [ebp - 0x190], eax
mov ecx, dword [ebp - 0x190]
sar eax, 0xf
mov dword [ebp - 0x100], eax
sar ecx, 0x1f
mov edx, ecx
xor edx, 0x7fff
cmp eax, ecx
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0x118], ecx
mov ecx, dword [ebp - 0x120]
cmove edx, dword [ebp - 0x190]
xor eax, 0x7fff
cmp dword [ebp - 0x108], ecx
movsx edx, dx
cmove eax, dword [ebp - 0x140]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0a137
mov eax, ebx
xor eax, esi
js 0xd0b3d9
mov ecx, dword [ebp - 0x174]
movsx edx, word [ebp - 0x30]
sub edx, ecx
mov ecx, dword [ebp - 0x11c]
mov dword [ebp - 0x12c], edx
mov eax, dword [ebp - 0x12c]
sar edx, 0xf
mov dword [ebp - 0xfc], edx
sar eax, 0x1f
mov edx, eax
mov dword [ebp - 0x114], eax
xor edx, 0x7fff
cmp dword [ebp - 0xfc], eax
mov eax, dword [ebp - 0x11c]
cmove edx, dword [ebp - 0x12c]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0x104], ecx
cmove eax, dword [ebp - 0x138]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a1ee
mov eax, esi
xor eax, ebx
js 0xd0b3e9
mov ecx, dword [ebp - 0x174]
movsx edx, word [ebp - 0x2e]
sub edx, ecx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0x128], edx
mov eax, dword [ebp - 0x128]
sar edx, 0xf
mov dword [ebp - 0xf8], edx
sar eax, 0x1f
mov edx, eax
mov dword [ebp - 0x110], eax
xor edx, 0x7fff
cmp dword [ebp - 0xf8], eax
mov eax, dword [ebp - 0x118]
cmove edx, dword [ebp - 0x128]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0x100], ecx
cmove eax, dword [ebp - 0x190]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0a2a5
mov eax, ebx
xor eax, esi
js 0xd0b3f9
mov ecx, dword [ebp - 0x174]
movsx edx, word [ebp - 0x2c]
sub edx, ecx
mov ecx, dword [ebp - 0x114]
mov dword [ebp - 0x124], edx
mov eax, dword [ebp - 0x124]
sar edx, 0xf
mov dword [ebp - 0xf4], edx
sar eax, 0x1f
mov edx, eax
mov dword [ebp - 0x10c], eax
xor edx, 0x7fff
cmp dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x114]
cmove edx, dword [ebp - 0x124]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0xfc], ecx
cmove eax, dword [ebp - 0x12c]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a35c
mov eax, esi
xor eax, ebx
js 0xd0b409
mov ecx, dword [ebp - 0x174]
movsx edx, word [ebp - 0x2a]
sub edx, ecx
mov ecx, dword [ebp - 0x110]
mov dword [ebp - 0x130], edx
mov eax, dword [ebp - 0x130]
sar edx, 0xf
mov dword [ebp - 0x1ac], edx
sar eax, 0x1f
mov edx, eax
mov dword [ebp - 0x1b0], eax
xor edx, 0x7fff
cmp dword [ebp - 0x1ac], eax
mov eax, dword [ebp - 0x110]
cmove edx, dword [ebp - 0x130]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0xf8], ecx
cmove eax, dword [ebp - 0x128]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
lea edx, [eax + ebx]
xor eax, ebx
mov dword [ebp - 0x1a0], edx
js 0xd0a417
xor edx, ebx
js 0xd0b419
mov edx, dword [ebp - 0x120]
mov ebx, 0x7fffffff
mov ecx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x120]
movsx edi, word [ebp - 0x3c]
xor edx, 0x7fff
cmp dword [ebp - 0x108], eax
cmove edx, dword [ebp - 0x140]
sub edi, dword [ebp - 0x174]
mov dword [ebp - 0x28], ecx
movsx edx, dx
mov ecx, edi
mov eax, edi
sar ecx, 0xf
sar eax, 0x1f
mov dword [ebp - 0x198], ecx
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x19c]
xor eax, 0x7fff
cmp dword [ebp - 0x198], ecx
lea ecx, [ebp - 0x1a]
mov dword [esp + 4], ecx
cmove eax, edi
cwde
imul eax, edx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmove edx, ebx
lea eax, [ebp - 0x1c]
mov dword [esp + 8], eax
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x1a8]
xor edx, 0x7fff
mov esi, eax
mov eax, dword [ebp - 0x11c]
cmp dword [ebp - 0x104], eax
mov eax, dword [ebp - 0x1a8]
cmove edx, dword [ebp - 0x138]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0x1a4], ecx
cmove eax, dword [ebp - 0x13c]
cwde
imul eax, edx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmovne ebx, edx
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a550
mov ecx, esi
xor ecx, ebx
js 0xd0b431
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0xf0]
xor edx, 0x7fff
cmp dword [ebp - 0x100], eax
mov eax, dword [ebp - 0xf0]
cmove edx, dword [ebp - 0x190]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0xec], ecx
cmove eax, dword [ebp - 0x134]
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0a5e7
mov eax, ebx
xor eax, esi
js 0xd0b441
mov edx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x114]
xor edx, 0x7fff
cmp dword [ebp - 0xfc], ecx
mov ecx, dword [ebp - 0x120]
cmove edx, dword [ebp - 0x12c]
xor eax, 0x7fff
cmp dword [ebp - 0x108], ecx
cmove eax, dword [ebp - 0x140]
movsx edx, dx
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a67e
mov eax, esi
xor eax, ebx
js 0xd0b451
mov edx, dword [ebp - 0x110]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x110]
xor edx, 0x7fff
cmp dword [ebp - 0xf8], ecx
mov ecx, dword [ebp - 0x11c]
cmove edx, dword [ebp - 0x128]
xor eax, 0x7fff
cmp dword [ebp - 0x104], ecx
cmove eax, dword [ebp - 0x138]
movsx edx, dx
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0a715
mov eax, ebx
xor eax, esi
js 0xd0b461
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x10c]
xor edx, 0x7fff
cmp dword [ebp - 0xf4], ecx
mov ecx, dword [ebp - 0x118]
cmove edx, dword [ebp - 0x124]
xor eax, 0x7fff
cmp dword [ebp - 0x100], ecx
cmove eax, dword [ebp - 0x190]
movsx edx, dx
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a7ac
mov eax, esi
xor eax, ebx
js 0xd0b471
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x114]
mov ecx, dword [ebp - 0x1b0]
xor edx, 0x7fff
cmp dword [ebp - 0x1ac], ecx
mov ecx, dword [ebp - 0x114]
cmove edx, dword [ebp - 0x130]
xor eax, 0x7fff
cmp dword [ebp - 0xfc], ecx
cmove eax, dword [ebp - 0x12c]
movsx edx, dx
cwde
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
lea edx, [eax + ebx]
xor eax, ebx
mov dword [ebp - 0x194], edx
js 0xd0a847
xor edx, ebx
js 0xd0b481
mov edx, dword [ebp - 0x120]
mov eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x194]
xor edx, 0x7fff
cmp dword [ebp - 0x108], eax
movsx eax, word [ebp - 0x3e]
cmove edx, dword [ebp - 0x140]
sub eax, dword [ebp - 0x174]
mov dword [ebp - 0x24], ecx
movsx edx, dx
mov ecx, eax
mov ebx, eax
sar ecx, 0x1f
sar ebx, 0xf
mov esi, ecx
xor esi, 0x7fff
cmp ebx, ecx
cmovne eax, esi
mov ebx, 0x7fffffff
cwde
imul eax, edx
lea ecx, [ebp - 0x1c]
mov dword [esp + 8], ecx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmove edx, ebx
lea eax, [ebp - 0x1a]
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x11c]
xor edx, 0x7fff
cmp dword [ebp - 0x104], ecx
mov esi, eax
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0x19c]
cmove edx, dword [ebp - 0x138]
xor eax, 0x7fff
cmp dword [ebp - 0x198], ecx
movsx edx, dx
cmovne edi, eax
movsx eax, di
imul eax, edx
cmp eax, 0x40000000
lea edx, [eax + eax]
cmovne ebx, edx
lea eax, [ebp - 0x1c]
lea edx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0a96b
mov ecx, esi
xor ecx, ebx
js 0xd0b499
mov edx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x118]
mov ecx, dword [ebp - 0x1a8]
xor edx, 0x7fff
cmp dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x1a8]
cmove edx, dword [ebp - 0x190]
xor eax, 0x7fff
movsx edx, dx
cmp dword [ebp - 0x1a4], ecx
cmove eax, dword [ebp - 0x13c]
mov dword [ebp - 0x13c], eax
movsx eax, word [ebp - 0x13c]
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0aa0e
mov eax, ebx
xor eax, esi
js 0xd0b4a9
mov eax, dword [ebp - 0x114]
mov edx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xf0]
xor eax, 0x7fff
cmp dword [ebp - 0xfc], edx
cmove eax, dword [ebp - 0x12c]
mov dword [ebp - 0x12c], eax
mov eax, dword [ebp - 0xf0]
movsx edx, word [ebp - 0x12c]
xor eax, 0x7fff
cmp dword [ebp - 0xec], ecx
cmove eax, dword [ebp - 0x134]
mov dword [ebp - 0x134], eax
movsx eax, word [ebp - 0x134]
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0aaba
mov eax, esi
xor eax, ebx
js 0xd0b4b9
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x110]
mov ecx, dword [ebp - 0x120]
xor eax, 0x7fff
cmp dword [ebp - 0xf8], edx
cmove eax, dword [ebp - 0x128]
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x120]
movsx edx, word [ebp - 0x128]
xor eax, 0x7fff
cmp dword [ebp - 0x108], ecx
cmove eax, dword [ebp - 0x140]
mov dword [ebp - 0x140], eax
movsx eax, word [ebp - 0x140]
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea esi, [ebx + eax]
xor eax, ebx
js 0xd0ab66
mov eax, ebx
xor eax, esi
js 0xd0b4c9
mov eax, dword [ebp - 0x10c]
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x11c]
xor eax, 0x7fff
cmp dword [ebp - 0xf4], edx
cmove eax, dword [ebp - 0x124]
mov dword [ebp - 0x124], eax
mov eax, dword [ebp - 0x11c]
movsx edx, word [ebp - 0x124]
xor eax, 0x7fff
cmp dword [ebp - 0x104], ecx
cmove eax, dword [ebp - 0x138]
mov dword [ebp - 0x138], eax
movsx eax, word [ebp - 0x138]
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx eax, word [ebp - 0x1c]
movsx edx, word [ebp - 0x1a]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00d06330
lea ebx, [esi + eax]
xor eax, esi
js 0xd0ac12
mov eax, esi
xor eax, ebx
js 0xd0b589
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x118]
xor eax, 0x7fff
cmp dword [ebp - 0x1ac], edx
cmove eax, dword [ebp - 0x130]
mov dword [ebp - 0x130], eax
mov eax, dword [ebp - 0x118]
movsx edx, word [ebp - 0x130]
xor eax, 0x7fff
cmp dword [ebp - 0x100], ecx
cmove eax, dword [ebp - 0x190]
mov dword [ebp - 0x190], eax
movsx eax, word [ebp - 0x190]
imul eax, edx
mov edx, 0x7fffffff
cmp eax, 0x40000000
lea ecx, [eax + eax]
cmovne edx, ecx
lea eax, [ebp - 0x1c]
lea ecx, [ebp - 0x1a]
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call fcn.00d060a0
movsx edx, word [ebp - 0x1a]
movsx eax, word [ebp - 0x1c]
mov dword [esp + 8], edx
mov dword [esp], edx
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
call fcn.00d06330
lea edx, [eax + ebx]
xor eax, ebx
js 0xd0acbe
mov eax, edx
xor eax, ebx
js 0xd0b599
mov ecx, dword [ebp - 0x194]
cmp dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x170], 3
setle al
movzx ecx, al
movsx eax, cx
cmp edx, dword [ebp + eax*4 - 0x28]
jg 0xd0acf0
lea eax, [ecx + 1]
cwde
mov dword [ebp - 0x170], eax
mov eax, dword [ebp + 8]
mov esi, 0xe
mov edi, 0xf
sub esi, dword [ebp - 0x170]
mov ecx, dword [ebp + 8]
lea esi, [eax + esi*2]
mov eax, 0xd
sub eax, dword [ebp - 0x170]
movsx edx, word [esi]
movsx eax, word [ecx + eax*2]
sub edx, eax
mov eax, edx
mov ecx, edx
sar eax, 0x1f
sar ecx, 0xf
mov ebx, eax
xor ebx, 0x7fff
cmp ecx, eax
mov eax, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
cmovne edx, ebx
movsx edx, dx
add eax, 0x1e
mov dword [ebp - 0x14c], eax
movsx eax, word [ecx + 0x1e]
add edx, eax
mov eax, edx
mov ecx, edx
sar eax, 0x1f
sar ecx, 0xf
mov ebx, eax
xor ebx, 0x7fff
cmp ecx, eax
mov eax, dword [ebp - 0x1d0]
cmovne edx, ebx
sub edi, dword [ebp - 0x170]
mov word [eax], dx
mov edx, dword [ebp + 8]
lea edi, [edx + edi*2]
movsx edx, word [esi]
mov esi, 0x10
movsx eax, word [edi]
sub 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 - 0x18c]
cmovne eax, ebx
cwde
add ecx, 0x20
mov dword [ebp - 0x148], ecx
mov ecx, dword [ebp - 0x18c]
movsx edx, word [ecx + 0x20]
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]
mov edx, dword [ebp + 8]
cmovne eax, ebx
sub esi, dword [ebp - 0x170]
mov word [ecx + 0x20], ax
lea esi, [ecx + esi*2]
add edx, 0x20
movsx eax, word [esi]
mov dword [ebp - 0x158], edx
movsx edx, word [edi]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
cwde
add edx, 0x22
mov dword [ebp - 0x144], edx
movsx edx, word [ecx + 0x22]
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 edx, dword [ebp + 8]
mov ecx, dword [ebp + 8]
cmovne eax, ebx
add edx, 0x22
mov dword [ebp - 0x154], edx
mov word [ecx + 0x22], ax
mov eax, 0x11
movsx edx, word [esi]
sub eax, dword [ebp - 0x170]
mov esi, 0x4c00
movsx eax, word [ecx + eax*2]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp - 0x18c]
mov ecx, dword [ebp - 0x18c]
cmovne eax, ebx
cwde
add edx, 0x24
mov dword [ebp - 0x150], edx
movsx edx, word [ecx + 0x24]
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, dword [ebp + 8]
mov word [ecx + 0x24], ax
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x168]
add edx, 0x24
mov dword [ebp - 0x160], edx
movsx edx, word [eax]
movsx eax, word [ecx]
add edx, eax
mov eax, edx
mov ecx, edx
sar eax, 0x1f
sar ecx, 0xf
mov ebx, eax
xor ebx, 0x7fff
cmp ecx, eax
mov ecx, dword [ebp - 0x164]
cmovne edx, ebx
movsx edx, dx
movsx eax, word [ecx]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, eax, 0x1555
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 - 0x1cc]
cmovne edx, ebx
add dx, 0x4fa6
cmp dx, 0x4c00
movsx edi, word [eax]
cmovle esi, edx
movsx esi, si
sub esi, edi
mov eax, esi
mov edx, esi
sar eax, 0x1f
sar edx, 0xf
mov ecx, eax
xor ecx, 0x7fff
cmp edx, eax
mov edx, dword [ebp + 8]
cmovne esi, ecx
movsx esi, si
movsx ebx, word [edx + 0x24]
sub ebx, edi
mov eax, ebx
mov edx, ebx
sar eax, 0x1f
sar edx, 0xf
mov ecx, eax
xor ecx, 0x7fff
cmp edx, eax
cmovne ebx, ecx
movsx ebx, bx
mov dword [esp], ebx
call fcn.00d04bc0
mov dword [esp], esi
sub eax, 0x10
mov word [ebp - 0x1b2], ax
call fcn.00d04bc0
movzx ecx, byte [ebp - 0x1b2]
shl ebx, cl
movsx ebx, bx
lea edi, [eax - 0x11]
mov ecx, edi
shl esi, cl
movsx esi, si
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00d05dc0
movzx esi, word [ebp - 0x1b2]
sub si, di
cwde
mov dword [ebp - 0x16c], eax
js 0xd0b5d5
mov edx, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x18c]
movsx eax, word [edx]
movsx edi, word [ecx + 0x1e]
sub eax, edi
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, dword [ebp - 0x16c]
mov edx, eax
mov ebx, eax
sar edx, 0x1f
sar eax, 0x1e
mov ecx, edx
xor ecx, 0x7fff
sar ebx, 0xf
cmp eax, edx
cmovne ebx, ecx
and esi, 0xf
movsx edx, bx
mov ecx, esi
mov eax, edx
shl eax, cl
mov word [ebp - 0x1da], ax
cwde
sar eax, cl
cmp edx, eax
je 0xd0b064
sar bx, 0xf
mov word [ebp - 0x1da], bx
xor word [ebp - 0x1da], 0x7fff
movzx edx, word [ebp - 0x1da]
mov ecx, dword [ebp + 8]
mov word [ebp - 0x44], dx
movsx eax, word [ecx + 0x20]
mov ecx, dword [ebp - 0x18c]
movsx edx, word [ecx + 0x20]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, dword [ebp - 0x16c]
mov edx, eax
mov ebx, eax
sar edx, 0x1f
sar eax, 0x1e
mov ecx, edx
xor ecx, 0x7fff
sar ebx, 0xf
cmp eax, edx
cmovne ebx, ecx
mov ecx, esi
movsx edx, bx
mov eax, edx
shl eax, cl
mov word [ebp - 0x1da], ax
cwde
sar eax, cl
cmp edx, eax
je 0xd0b0e6
sar bx, 0xf
mov word [ebp - 0x1da], bx
xor word [ebp - 0x1da], 0x7fff
movzx edx, word [ebp - 0x1da]
mov ecx, dword [ebp + 8]
mov word [ebp - 0x42], dx
movsx eax, word [ecx + 0x22]
mov ecx, dword [ebp - 0x18c]
movsx edx, word [ecx + 0x22]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, dword [ebp - 0x16c]
mov edx, eax
mov ebx, eax
sar edx, 0x1f
sar eax, 0x1e
mov ecx, edx
xor ecx, 0x7fff
sar ebx, 0xf
cmp eax, edx
cmovne ebx, ecx
mov ecx, esi
movsx edx, bx
mov eax, edx
shl eax, cl
mov word [ebp - 0x1da], ax
cwde
sar eax, cl
cmp edx, eax
je 0xd0b168
sar bx, 0xf
mov word [ebp - 0x1da], bx
xor word [ebp - 0x1da], 0x7fff
movzx edx, word [ebp - 0x1da]
mov ecx, dword [ebp + 8]
mov word [ebp - 0x40], dx
movsx eax, word [ecx + 0x24]
mov ecx, dword [ebp - 0x18c]
movsx edx, word [ecx + 0x24]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, dword [ebp - 0x16c]
mov edx, eax
mov ebx, eax
sar edx, 0x1f
sar eax, 0x1e
mov ecx, edx
xor ecx, 0x7fff
sar ebx, 0xf
cmp eax, edx
cmovne ebx, ecx
mov ecx, esi
movsx edx, bx
mov eax, edx
shl eax, cl
mov word [ebp - 0x1da], ax
cwde
sar eax, cl
cmp edx, eax
je 0xd0b1ea
sar bx, 0xf
mov word [ebp - 0x1da], bx
xor word [ebp - 0x1da], 0x7fff
movzx edx, word [ebp - 0x1da]
mov word [ebp - 0x3e], dx
movzx ecx, word [ebp - 0x42]
movzx edx, word [ebp - 0x44]
lea eax, [edx + ecx - 0x500]
test ax, ax
js 0xd0b37c
movzx edx, word [ebp - 0x40]
lea eax, [ecx + edx - 0x500]
test ax, ax
js 0xd0b366
movzx ecx, word [ebp - 0x3e]
lea eax, [ecx + edx - 0x500]
test ax, ax
js 0xd0b350
movsx eax, word [ebp - 0x44]
lea eax, [edi + eax]
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x148]
cmovne eax, ebx
mov word [edx], ax
movsx edx, word [ebp - 0x42]
movsx eax, word [ecx]
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 edx, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x144]
cmovne eax, ebx
mov word [edx], ax
movsx edx, word [ebp - 0x40]
movsx eax, word [ecx]
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 edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x150]
cmovne eax, ebx
mov word [edx], ax
movsx edx, word [ebp - 0x3e]
movsx eax, word [ecx]
add eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
mov ebx, edx
sar ecx, 0xf
xor ebx, 0x7fff
cmp ecx, edx
mov edx, dword [ebp - 0x160]
cmovne eax, ebx
xor esi, esi
mov word [edx], ax
nop
lea esi, [esi]
mov ecx, dword [ebp + 8]
movsx eax, word [ecx + esi*2]
imul eax, eax, 0x6666
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 eax, dword [ebp + 8]
cmovne edx, ebx
mov word [eax + esi*2], dx
add esi, 1
cmp esi, 0x13
jne 0xd0b2f0
mov dword [esp + 8], 0x14
mov dword [esp + 4], eax
mov dword [esp], eax
call fcn.00d02e60
add esp, 0x1ec
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x174]
jmp 0xd09ef0
cmp cx, dx
jle 0xd0b3b8
mov eax, 0x500
sub ax, cx
mov word [ebp - 0x40], ax
jmp 0xd0b235
cmp dx, cx
jle 0xd0b3a5
mov eax, 0x500
sub ax, dx
mov word [ebp - 0x42], ax
jmp 0xd0b221
cmp cx, dx
jle 0xd0b392
mov eax, 0x500
sub ax, cx
mov word [ebp - 0x44], ax
jmp 0xd0b20d
mov eax, 0x500
sub ax, dx
mov ecx, eax
mov word [ebp - 0x42], ax
jmp 0xd0b20d
mov eax, 0x500
sub ax, cx
mov edx, eax
mov word [ebp - 0x40], ax
jmp 0xd0b221
mov eax, 0x500
sub ax, dx
mov word [ebp - 0x3e], ax
jmp 0xd0b235
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a084
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0a137
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a1ee
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0a2a5
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a35c
sar ebx, 0x1f
mov dword [ebp - 0x1a0], ebx
xor dword [ebp - 0x1a0], 0x7fffffff
jmp 0xd0a417
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a550
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0a5e7
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a67e
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0a715
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a7ac
sar ebx, 0x1f
mov dword [ebp - 0x194], ebx
xor dword [ebp - 0x194], 0x7fffffff
jmp 0xd0a847
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0a96b
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0aa0e
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0aaba
mov esi, ebx
sar esi, 0x1f
xor esi, 0x7fffffff
jmp 0xd0ab66
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09a92
mov edx, ecx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd09ab9
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09ae0
mov edx, ecx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd09b07
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09b2e
mov edx, ecx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd09b52
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09b72
mov edx, ecx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd09b92
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09a44
mov edx, ecx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd09a6b
mov ecx, edx
sar ecx, 0x1f
xor ecx, 0x7fffffff
jmp 0xd09baf
mov ebx, esi
sar ebx, 0x1f
xor ebx, 0x7fffffff
jmp 0xd0ac12
mov edx, ebx
sar edx, 0x1f
xor edx, 0x7fffffff
jmp 0xd0acbe
neg eax
mov ecx, eax
lea edx, [ebp - 0x44]
and ecx, 0xf
lea ebx, [ebp - 0x28]
movsx eax, word [edx]
sar eax, cl
mov word [edx], ax
add edx, 2
cmp edx, ebx
jne 0xd0b5b6
mov eax, dword [ebp - 0x4c]
sar eax, cl
mov dword [ebp - 0x174], eax
jmp 0xd09ef0
neg esi
xor edi, edi
and esi, 0xf
mov ecx, dword [ebp + 8]
movsx edx, word [ecx + edi*2 + 0x1c]
movsx eax, word [ecx + edi*2 + 0x1e]
sub eax, edx
mov edx, eax
mov ecx, eax
sar edx, 0x1f
sar ecx, 0xf
mov ebx, edx
xor ebx, 0x7fff
cmp ecx, edx
cmovne eax, ebx
cwde
imul eax, dword [ebp - 0x16c]
mov ecx, eax
mov edx, eax
sar ecx, 0x1f
mov ebx, ecx
sar eax, 0x1e
xor ebx, 0x7fff
sar edx, 0xf
cmp eax, ecx
cmovne edx, ebx
mov ecx, esi
movsx edx, dx
sar edx, cl
mov word [ebp + edi*2 - 0x44], dx
add edi, 1
cmp edi, 4
jne 0xd0b5dc
mov eax, dword [ebp - 0x14c]
movsx edi, word [eax]
jmp 0xd0b1f5