Function at 0x628a00
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff05c
push ebx
push esi
push edi
mov edi, dword [ebp + 0x34]
mov esi, dword [ebp + 0x1c]
push esi
push edi
lea edi, [ebp - 0x654]
mov ecx, 0x10a
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp + 0x10]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0xea4]
mov ecx, 0x10a
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp + 0x28], 0
je 0x628a57
mov eax, dword [ebp + 0x28]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0xa7c]
mov ecx, 0x10a
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x628a6d
push 0x428
push 0
lea eax, [ebp - 0xa7c]
push eax
call fcn.006111d4
add esp, 0xc
cmp byte [ebp - 0xe9d], 0
je 0x628a85
cmp dword [ebp + 0x20], 0
jne 0x628a89
cmp byte [ebp - 0x64d], 0
jne 0x628a89
xor edx, edx
jmp 0x628a8e
mov edx, 1
mov dword [ebp - 0xc], edx
cmp byte [ebp - 0xe9d], 0
je 0x628aa9
cmp dword [ebp + 0x20], 0
je 0x628aa9
cmp byte [ebp - 0x64d], 0
je 0x628aad
xor ecx, ecx
jmp 0x628ab2
mov ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0xc], 1
je 0x628aca
cmp byte [ebp - 0xe9d], 0
je 0x628aca
cmp dword [ebp + 0x4c], 1
jne 0x628acf
xor eax, eax
mov dword [ebp + 0x3c], eax
cmp dword [ebp + 0x38], 0
je 0x628ada
xor edx, edx
mov dword [ebp + 0x50], edx
mov ecx, dword [edi + 8]
sub ecx, dword [edi]
mov dword [ebp - 4], ecx
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 4]
mov dword [ebp - 8], eax
cmp dword [ebp - 4], 0
je 0x628af7
cmp dword [ebp - 8], 0
jne 0x628aff
or eax, 0xffffffff
jmp 0x62b8d3
cmp dword [ebp + 0x54], 0
je 0x628bea
mov edx, dword [ebp + 0x10]
cmp word [edx + 2], 1
jne 0x628bea
cmp word [esi + 2], 1
jne 0x628bea
push 0x400
lea ecx, [esi + 0x20]
push ecx
mov eax, dword [ebp + 0x10]
add eax, 0x20
push eax
call fcn.00611214
add esp, 0xc
test eax, eax
je 0x628bea
xor edx, edx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x14]
cmp ecx, dword [ebp - 8]
jge 0x628be3
mov eax, dword [edi + 4]
xor ecx, ecx
add eax, dword [ebp - 0x14]
imul dword [ebp + 0x18]
add eax, dword [ebp + 0x14]
add eax, dword [edi]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0x30]
add edx, dword [ebp - 0x14]
imul edx, dword [ebp + 0xc]
add edx, dword [ebp + 8]
add edx, dword [ebp + 0x2c]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 4]
jge 0x628bd4
mov edx, dword [ebp - 0x1c]
xor ecx, ecx
mov cl, byte [edx]
shl ecx, 2
add ecx, esi
add ecx, 0x20
mov dword [ebp - 0x24], ecx
push 0
mov eax, dword [ebp - 0x24]
xor edx, edx
mov dl, byte [eax]
push edx
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov al, byte [ecx + 1]
push eax
mov edx, dword [ebp - 0x24]
xor ecx, ecx
mov cl, byte [edx + 2]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call fcn.0062b8dc
add esp, 0x14
mov edx, dword [ebp - 0x20]
mov byte [edx], al
inc dword [ebp - 0x18]
inc dword [ebp - 0x1c]
inc dword [ebp - 0x20]
mov ecx, dword [ebp - 0x18]
cmp ecx, dword [ebp - 4]
jl 0x628b84
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 8]
jl 0x628b53
xor eax, eax
jmp 0x62b8d3
mov edx, dword [ebp + 0x10]
cmp word [edx], 8
jne 0x628e3a
cmp word [esi], 8
je 0x628e3a
cmp dword [ebp + 0x4c], 0
jne 0x628e3a
mov cx, word [esi]
sub cx, 0x10
je 0x628c2d
sub cx, 8
je 0x628cd7
sub cx, 8
je 0x628d91
jmp 0x628e33
xor eax, eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 8]
jge 0x628e33
mov edx, dword [ebp + 0x30]
mov ebx, dword [edi + 4]
add edx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x28]
imul edx, dword [ebp + 0xc]
imul ebx, dword [ebp + 0x18]
add edx, dword [ebp + 8]
add ebx, dword [ebp + 0x14]
add edx, dword [ebp + 0x2c]
mov eax, dword [edi]
xor ecx, ecx
add eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
add ebx, eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jge 0x628cc3
movzx edx, word [ebx]
and edx, dword [esi + 0x18]
mov cl, byte [esi + 0xb]
shr edx, cl
push edx
movzx eax, word [ebx]
and eax, dword [esi + 0x14]
mov cl, byte [esi + 0xa]
shr eax, cl
push eax
movzx eax, word [ebx]
and eax, dword [esi + 0x10]
mov cl, byte [esi + 9]
shr eax, cl
push eax
movzx eax, word [ebx]
and eax, dword [esi + 0xc]
mov cl, byte [esi + 8]
shr eax, cl
push eax
mov edx, dword [ebp + 0x10]
push edx
call fcn.0062b8dc
add esp, 0x14
mov edx, dword [ebp - 0x30]
mov byte [edx], al
inc dword [ebp - 0x2c]
add ebx, 2
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jl 0x628c71
inc dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 8]
jl 0x628c3e
jmp 0x628e33
xor eax, eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 8]
jge 0x628e33
mov edx, dword [ebp + 0x30]
mov ebx, dword [edi + 4]
add edx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x28]
imul edx, dword [ebp + 0xc]
imul ebx, dword [ebp + 0x18]
add edx, dword [ebp + 8]
add ebx, dword [ebp + 0x14]
add edx, dword [ebp + 0x2c]
mov eax, dword [edi]
xor ecx, ecx
add eax, eax
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
add ebx, eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jge 0x628d7d
movzx edx, word [ebx]
xor ecx, ecx
mov cl, byte [ebx + 2]
shl ecx, 0x10
or edx, ecx
mov dword [ebp - 0x34], edx
mov cl, byte [esi + 0xb]
mov eax, dword [esi + 0x18]
and eax, dword [ebp - 0x34]
shr eax, cl
push eax
mov cl, byte [esi + 0xa]
mov eax, dword [esi + 0x14]
and eax, dword [ebp - 0x34]
shr eax, cl
push eax
mov cl, byte [esi + 9]
mov eax, dword [esi + 0x10]
and eax, dword [ebp - 0x34]
shr eax, cl
push eax
mov cl, byte [esi + 8]
mov eax, dword [esi + 0xc]
and eax, dword [ebp - 0x34]
shr eax, cl
push eax
mov edx, dword [ebp + 0x10]
push edx
call fcn.0062b8dc
add esp, 0x14
mov edx, dword [ebp - 0x30]
mov byte [edx], al
inc dword [ebp - 0x2c]
add ebx, 3
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jl 0x628d1b
inc dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 8]
jl 0x628ce8
jmp 0x628e33
xor eax, eax
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x28]
cmp edx, dword [ebp - 8]
jge 0x628e33
mov edx, dword [ebp + 0x30]
mov ebx, dword [edi + 4]
add edx, dword [ebp - 0x28]
add ebx, dword [ebp - 0x28]
imul edx, dword [ebp + 0xc]
imul ebx, dword [ebp + 0x18]
add edx, dword [ebp + 8]
add ebx, dword [ebp + 0x14]
add edx, dword [ebp + 0x2c]
mov eax, dword [edi]
shl eax, 2
xor ecx, ecx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], ecx
add ebx, eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jge 0x628e24
mov cl, byte [esi + 0xb]
mov edx, dword [ebx]
and edx, dword [esi + 0x18]
shr edx, cl
push edx
mov cl, byte [esi + 0xa]
mov eax, dword [ebx]
and eax, dword [esi + 0x14]
shr eax, cl
push eax
mov cl, byte [esi + 9]
mov eax, dword [ebx]
and eax, dword [esi + 0x10]
shr eax, cl
push eax
mov cl, byte [esi + 8]
mov eax, dword [ebx]
and eax, dword [esi + 0xc]
shr eax, cl
push eax
mov edx, dword [ebp + 0x10]
push edx
call fcn.0062b8dc
add esp, 0x14
mov edx, dword [ebp - 0x30]
mov byte [edx], al
inc dword [ebp - 0x2c]
add ebx, 4
inc dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 4]
jl 0x628dd6
inc dword [ebp - 0x28]
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [ebp - 8]
jl 0x628da2
xor eax, eax
jmp 0x62b8d3
mov edx, dword [ebp + 0x10]
cmp word [edx], 8
jne 0x628ebb
cmp dword [ebp + 0x48], 0
jne 0x628ebb
cmp dword [ebp + 0x50], 0
jne 0x628ebb
cmp dword [ebp + 0x4c], 0
jne 0x628ebb
cmp word [esi], 8
je 0x628e63
or eax, 0xffffffff
jmp 0x62b8d3
mov edx, dword [ebp + 8]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 4]
mov dword [ebp - 0x40], eax
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x44], edx
pushf
cld
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x3c]
mov ebx, dword [ebp - 8]
mov eax, 0
mov ecx, dword [ebp - 4]
movzx edx, byte [esi]
mov byte [edi], dl
cmp edx, eax
jbe 0x628ea0
mov eax, edx
inc esi
inc edi
dec ecx
jne 0x628e95
add edi, dword [ebp - 0x44]
add esi, dword [ebp - 0x40]
dec ebx
jne 0x628e92
mov dword [ebp - 0x48], eax
popf
mov eax, dword [ebp - 0x48]
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 0
jne 0x629224
cmp dword [ebp - 0x10], 0
jne 0x629224
cmp dword [ebp + 0x48], 0
jne 0x629224
cmp dword [ebp + 0x4c], 0
jne 0x629224
mov dx, word [ebp - 0xea4]
cmp dx, word [ebp - 0x654]
jne 0x629224
mov ecx, dword [ebp - 0xe98]
cmp ecx, dword [ebp - 0x648]
jne 0x629224
mov eax, dword [ebp - 0xe94]
cmp eax, dword [ebp - 0x644]
jne 0x629224
mov edx, dword [ebp - 0xe90]
cmp edx, dword [ebp - 0x640]
jne 0x629224
mov ecx, dword [ebp - 0xe8c]
cmp ecx, dword [ebp - 0x63c]
jne 0x629224
movzx eax, word [ebp - 0xea2]
imul dword [ebp - 4]
mov dword [ebp - 0x64], eax
cmp dword [ebp + 0x38], 0
jne 0x62914b
movzx ecx, word [ebp - 0xea2]
mov edx, dword [ebp + 0x30]
imul edx, dword [ebp + 0xc]
imul ecx, dword [ebp + 0x2c]
add edx, ecx
add edx, dword [ebp + 8]
mov dword [ebp - 0x4c], edx
movzx edx, word [ebp - 0x652]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
imul ecx, dword [ebp + 0x18]
imul edx
add eax, ecx
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp + 0x18]
sub edx, dword [ebp - 0x64]
mov dword [ebp - 0x54], edx
cmp dword [ebp + 0x50], 1
jne 0x62906f
movzx ecx, word [ebp - 0xea4]
mov dword [ebp - 0x68], ecx
pushaw
pushf
cld
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov ebx, dword [ebp + 0x40]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x68], 8
je 0x62904d
cmp dword [ebp - 0x68], 0x10
je 0x62902b
cmp dword [ebp - 0x68], 0x18
je 0x628ff6
mov ecx, dword [ebp - 4]
mov eax, dword [esi]
cmp eax, ebx
je 0x628fe2
mov dword [edi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x628fda
add edi, dword [ebp - 0x58]
add esi, dword [ebp - 0x54]
dec edx
jne 0x628fd7
jmp 0x629066
mov ecx, dword [ebp - 4]
and ebx, 0xffffff
xor eax, eax
mov al, byte [esi + 2]
shl eax, 0x10
mov ax, word [esi]
cmp eax, ebx
je 0x629017
mov word [edi], ax
shr eax, 0x10
mov byte [edi + 2], al
add esi, 3
add edi, 3
dec ecx
jne 0x628fff
add edi, dword [ebp - 0x58]
add esi, dword [ebp - 0x54]
dec edx
jne 0x628ff6
jmp 0x629066
mov ecx, dword [ebp - 4]
mov ax, word [esi]
cmp ax, bx
je 0x629039
mov word [edi], ax
add esi, 2
add edi, 2
dec ecx
jne 0x62902e
add edi, dword [ebp - 0x58]
add esi, dword [ebp - 0x54]
dec edx
jne 0x62902b
jmp 0x629066
mov ecx, dword [ebp - 4]
mov al, byte [esi]
cmp al, bl
je 0x629058
mov byte [edi], al
inc esi
inc edi
dec ecx
jne 0x629050
add edi, dword [ebp - 0x58]
add esi, dword [ebp - 0x54]
dec edx
jne 0x62904d
popf
popaw
jmp 0x629218
mov eax, dword [ebp - 0x64]
test eax, eax
jns 0x629079
add eax, 3
sar eax, 2
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x5c]
shl edx, 2
mov eax, dword [ebp - 0x64]
sub eax, edx
movzx edx, word [ebp - 0xea2]
mov ecx, edx
cdq
idiv ecx
mov dword [ebp - 0x60], eax
movzx eax, word [ebp - 0xea4]
mov dword [ebp - 0x68], eax
pushaw
pushf
cld
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x68], 8
je 0x629121
cmp dword [ebp - 0x68], 0x10
je 0x6290fd
cmp dword [ebp - 0x68], 0x18
je 0x6290d7
mov ecx, dword [ebp - 0x5c]
rep movsd dword es:[edi], dword [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x6290c9
jmp 0x629142
mov ecx, dword [ebp - 0x5c]
test ecx, 0xffffffff
je 0x6290e4
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x60]
test ecx, 0xffffffff
je 0x6290f4
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
loop 0x6290ef
add edi, eax
add esi, ebx
dec edx
jne 0x6290d7
jmp 0x629142
mov ecx, dword [ebp - 0x5c]
test ecx, 0xffffffff
je 0x62910a
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x60]
test ecx, 0xffffffff
je 0x629118
rep movsw word es:[edi], word [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x6290fd
jmp 0x629142
mov ecx, dword [ebp - 0x5c]
test ecx, 0xffffffff
je 0x62912e
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x60]
test ecx, 0xffffffff
je 0x62913b
rep movsb byte es:[edi], byte [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x629121
popf
popaw
jmp 0x629218
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 4]
imul dword [ebp + 0xc]
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp + 0x2c]
add eax, edx
dec ecx
movzx edx, word [ebp - 0xea2]
imul ecx, edx
add eax, ecx
add eax, dword [ebp + 8]
mov dword [ebp - 0x4c], eax
movzx ecx, word [ebp - 0x652]
mov eax, dword [edi]
imul ecx
mov edx, dword [edi + 4]
imul edx, dword [ebp + 0x18]
add eax, edx
add eax, dword [ebp + 0x14]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp - 0x64]
mov dword [ebp - 0x54], ecx
movzx eax, word [ebp - 0xea4]
mov dword [ebp - 0x68], eax
pushaw
mov edi, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x58]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x68], 8
je 0x629206
cmp dword [ebp - 0x68], 0x10
je 0x6291f3
cmp dword [ebp - 0x68], 0x18
je 0x6291df
mov ecx, dword [ebp - 4]
movsd dword es:[edi], dword [esi]
sub edi, 8
loop 0x6291d0
add edi, eax
add esi, ebx
dec edx
jne 0x6291cd
jmp 0x629216
mov ecx, dword [ebp - 4]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
sub edi, 6
loop 0x6291e2
add edi, eax
add esi, ebx
dec edx
jne 0x6291df
jmp 0x629216
mov ecx, dword [ebp - 4]
movsw word es:[edi], word [esi]
sub edi, 4
loop 0x6291f6
add edi, eax
add esi, ebx
dec edx
jne 0x6291f3
jmp 0x629216
mov ecx, dword [ebp - 4]
movsb byte es:[edi], byte [esi]
sub edi, 2
loop 0x629209
add edi, eax
add esi, ebx
dec edx
jne 0x629206
popaw
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x50], 1
jne 0x6293d0
cmp dword [ebp + 0x48], 0
jne 0x62aa39
cmp dword [ebp - 0x10], 0
jne 0x62aa39
cmp dword [ebp - 0xc], 0
jne 0x62aa39
cmp dword [ebp + 0x4c], 0
jne 0x62aa39
cmp dword [ebp + 0x3c], 0
jne 0x62aa39
cmp dword [ebp + 0x38], 0
jne 0x62aa39
cmp word [ebp - 0x654], 0x20
jne 0x62aa39
cmp word [ebp - 0xea4], 0x20
jne 0x62aa39
cmp dword [ebp - 0x648], 0xff0000
jne 0x62aa39
cmp dword [ebp - 0x644], 0xff00
jne 0x62aa39
cmp dword [ebp - 0x640], 0xff
jne 0x62aa39
cmp dword [ebp - 0x63c], 0
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62aa39
cmp dword [ebp - 0xe94], 0xff00
jne 0x62aa39
cmp dword [ebp - 0xe90], 0xff
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0xff000000
jne 0x62aa39
mov edx, dword [ebp + 0x40]
and edx, 0xffffff
mov dword [ebp - 0x6c], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x70], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x74], edx
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x78], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x7c], edx
cmp dword [ebp - 8], 0
je 0x6293c4
cmp dword [ebp - 4], 0
je 0x6293c4
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 4]
mov dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x74]
mov ecx, dword [edx]
and ecx, 0xffffff
cmp ecx, dword [ebp - 0x6c]
je 0x6293a3
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov edx, dword [eax]
or edx, 0xff000000
mov dword [ecx], edx
add dword [ebp - 0x70], 4
add dword [ebp - 0x74], 4
dec dword [ebp - 0x84]
jne 0x629383
mov eax, dword [ebp - 0x78]
add dword [ebp - 0x70], eax
mov edx, dword [ebp - 0x7c]
add dword [ebp - 0x74], edx
dec dword [ebp - 0x80]
jne 0x62937a
xor eax, eax
jmp 0x62b8d3
cmp byte [ebp - 0xe9d], 0
je 0x6298ab
cmp dword [ebp + 0x3c], 1
jne 0x6298ab
cmp dword [ebp + 0x48], 0
jne 0x6298ab
cmp dword [ebp + 0x4c], 0
jne 0x6298ab
mov edx, dword [ebp - 0xe98]
cmp edx, dword [ebp - 0x648]
jne 0x6298ab
mov ecx, dword [ebp - 0xe94]
cmp ecx, dword [ebp - 0x644]
jne 0x6298ab
mov eax, dword [ebp - 0xe90]
cmp eax, dword [ebp - 0x640]
jne 0x6298ab
mov dx, word [ebp - 0xea4]
cmp dx, word [ebp - 0x654]
jne 0x6298ab
push 0xff
mov ecx, dword [ebp + 0x40]
and ecx, 0xff
push ecx
mov eax, dword [ebp + 0x40]
and eax, 0xff00
shr eax, 8
push eax
mov edx, dword [ebp + 0x40]
and edx, 0xff0000
shr edx, 0x10
push edx
lea ecx, [ebp - 0xea4]
push ecx
call fcn.0062b8dc
add esp, 0x14
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0xe98]
or eax, dword [ebp - 0xe94]
or eax, dword [ebp - 0xe90]
not eax
mov dword [ebp - 0x8c], eax
cmp dword [ebp + 0x38], 1
jne 0x6294ed
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
add edx, dword [ebp + 0xc]
mov dword [ebp - 0x90], edx
movzx ecx, word [ebp - 0xea2]
neg ecx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 4]
imul dword [ebp + 0xc]
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp + 0x2c]
add eax, edx
dec ecx
movzx edx, word [ebp - 0xea2]
imul ecx, edx
add eax, ecx
add eax, dword [ebp + 8]
jmp 0x629525
movzx eax, word [ebp - 0xea2]
imul dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [ebp - 0x90], ecx
movzx eax, word [ebp - 0xea2]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp + 0x30]
imul dword [ebp + 0xc]
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp + 0x2c]
add eax, edx
add eax, dword [ebp + 8]
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov ebx, dword [ebp + 0x18]
imul edx, ecx
mov ecx, dword [edi + 4]
imul ecx, dword [ebp + 0x18]
add edx, ecx
movzx ecx, word [ebp - 0x652]
imul ecx, dword [ebp - 4]
add edx, dword [ebp + 0x14]
sub ebx, ecx
mov dword [ebp - 0x94], ebx
mov cx, word [ebp - 0xea4]
sub cx, 8
je 0x629583
sub cx, 8
je 0x629639
sub cx, 8
je 0x62970a
sub cx, 8
je 0x6297e1
jmp 0x6298a4
mov cl, byte [ebp - 0x88]
mov byte [ebp - 0x9a], cl
xor ecx, ecx
mov dword [ebp - 0xa0], ecx
mov ecx, dword [ebp - 0xa0]
cmp ecx, dword [ebp - 8]
jge 0x6298a4
xor ecx, ecx
mov dword [ebp - 0xa4], ecx
mov ecx, dword [ebp - 0xa4]
cmp ecx, dword [ebp - 4]
jge 0x629613
mov cl, byte [edx]
mov byte [ebp - 0x99], cl
mov cl, byte [ebp - 0x9a]
cmp cl, byte [ebp - 0x99]
jne 0x6295df
mov cl, byte [ebp - 0xe8c]
not cl
and byte [ebp - 0x99], cl
jmp 0x6295eb
mov cl, byte [ebp - 0xe8c]
or byte [ebp - 0x99], cl
mov cl, byte [ebp - 0x99]
mov byte [eax], cl
inc dword [ebp - 0xa4]
movzx ecx, word [ebp - 0x652]
add edx, ecx
mov ecx, dword [ebp - 0xa4]
add eax, dword [ebp - 0x98]
cmp ecx, dword [ebp - 4]
jl 0x6295b9
inc dword [ebp - 0xa0]
add eax, dword [ebp - 0x98]
add edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xa0]
cmp ecx, dword [ebp - 8]
jl 0x6295a6
jmp 0x6298a4
mov cx, word [ebp - 0x88]
mov word [ebp - 0xa8], cx
mov cx, word [ebp - 0x8c]
mov word [ebp - 0xaa], cx
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 8]
jge 0x6298a4
xor ecx, ecx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0xb4]
cmp ecx, dword [ebp - 4]
jge 0x6296e4
mov cx, word [edx]
mov word [ebp - 0xa6], cx
mov cx, word [ebp - 0xa8]
cmp cx, word [ebp - 0xa6]
jne 0x6296ac
mov cx, word [ebp - 0xe8c]
not cx
and word [ebp - 0xa6], cx
jmp 0x6296ba
mov cx, word [ebp - 0xe8c]
or word [ebp - 0xa6], cx
mov cx, word [ebp - 0xa6]
mov word [eax], cx
inc dword [ebp - 0xb4]
movzx ecx, word [ebp - 0x652]
add edx, ecx
mov ecx, dword [ebp - 0xb4]
add eax, dword [ebp - 0x98]
cmp ecx, dword [ebp - 4]
jl 0x62967f
inc dword [ebp - 0xb0]
add eax, dword [ebp - 0x90]
add edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xb0]
cmp ecx, dword [ebp - 8]
jl 0x62966c
jmp 0x6298a4
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xbc], ecx
xor ecx, ecx
mov dword [ebp - 0xc0], ecx
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 8]
jge 0x6298a4
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov ecx, dword [ebp - 0xc4]
cmp ecx, dword [ebp - 4]
jge 0x6297bb
movzx ecx, word [edx]
xor ebx, ebx
mov bl, byte [edx + 2]
shl ebx, 0x10
add ecx, ebx
mov dword [ebp - 0xb8], ecx
mov ecx, dword [ebp - 0xbc]
cmp ecx, dword [ebp - 0xb8]
jne 0x629771
mov ecx, dword [ebp - 0xe8c]
not ecx
and dword [ebp - 0xb8], ecx
jmp 0x62977d
mov ecx, dword [ebp - 0xe8c]
or dword [ebp - 0xb8], ecx
mov cx, word [ebp - 0xb8]
and cx, 0xffff
mov word [eax], cx
mov ecx, dword [ebp - 0xb8]
shr ecx, 0x10
and cl, 0xff
mov byte [eax + 2], cl
inc dword [ebp - 0xc4]
movzx ecx, word [ebp - 0x652]
add edx, ecx
mov ecx, dword [ebp - 0xc4]
add eax, dword [ebp - 0x98]
cmp ecx, dword [ebp - 4]
jl 0x629740
inc dword [ebp - 0xc0]
add eax, dword [ebp - 0x90]
add edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xc0]
cmp ecx, dword [ebp - 8]
jl 0x62972d
jmp 0x6298a4
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0xcc], ecx
mov ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xd0], ecx
xor ecx, ecx
mov dword [ebp - 0xd4], ecx
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 8]
jge 0x6298a4
xor ecx, ecx
mov dword [ebp - 0xd8], ecx
mov ecx, dword [ebp - 0xd8]
cmp ecx, dword [ebp - 4]
jge 0x629883
mov ecx, dword [edx]
or ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xcc]
cmp ecx, dword [ebp - 0xc8]
jne 0x62984f
mov ecx, dword [ebp - 0xe8c]
not ecx
and dword [ebp - 0xc8], ecx
jmp 0x62985b
mov ecx, dword [ebp - 0xe8c]
or dword [ebp - 0xc8], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [eax], ecx
inc dword [ebp - 0xd8]
movzx ecx, word [ebp - 0x652]
add edx, ecx
mov ecx, dword [ebp - 0xd8]
add eax, dword [ebp - 0x98]
cmp ecx, dword [ebp - 4]
jl 0x629823
inc dword [ebp - 0xd4]
add eax, dword [ebp - 0x90]
add edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0xd4]
cmp ecx, dword [ebp - 8]
jl 0x629810
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x44], 0
jne 0x62aa39
cmp dword [ebp + 0x48], 0
jne 0x62aa39
cmp dword [ebp + 0x4c], 0
jne 0x62aa39
cmp dword [ebp + 0x38], 0
jne 0x62aa39
cmp dword [ebp + 0x20], 0
jne 0x62aa39
cmp dword [ebp + 0x3c], 0
jne 0x629b1d
cmp word [ebp - 0x654], 8
jne 0x629b1d
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp - 0xe4], eax
movzx edx, word [ebp - 0x652]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
sub ecx, edx
mov dword [ebp - 0xe8], ecx
mov eax, dword [ebp + 0x30]
imul dword [ebp + 0xc]
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp + 0x2c]
add eax, edx
add eax, dword [ebp + 8]
mov dword [ebp - 0xdc], eax
movzx eax, word [ebp - 0x652]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
imul edx, dword [ebp + 0x18]
imul ecx, eax
add ecx, edx
add ecx, dword [ebp + 0x14]
mov dword [ebp - 0xe0], ecx
cmp word [ebp - 0xea4], 0x10
jne 0x6299ed
cmp dword [ebp - 0xe8c], 0
jne 0x6299ed
cmp dword [ebp - 0xe98], 0xf800
jne 0x6299ed
cmp dword [ebp - 0xe94], 0x7e0
jne 0x6299ed
cmp dword [ebp - 0xe90], 0x1f
jne 0x6299ed
mov edi, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x634]
mov edx, eax
shr edx, 5
and edx, 0x7e0
mov ebx, eax
shr ebx, 3
and ebx, 0x1f
or edx, ebx
shr eax, 8
and eax, 0xf800
or edx, eax
mov word [edi], dx
add edi, 2
inc esi
dec ecx
jne 0x6299a2
add edi, dword [ebp - 0xe4]
add esi, dword [ebp - 0xe8]
dec dword [ebp - 8]
jne 0x62999f
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x10
jne 0x629a89
cmp dword [ebp - 0xe8c], 0
jne 0x629a89
cmp dword [ebp - 0xe98], 0x7c00
jne 0x629a89
cmp dword [ebp - 0xe94], 0x3e0
jne 0x629a89
cmp dword [ebp - 0xe90], 0x1f
jne 0x629a89
mov edi, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x634]
mov edx, eax
shr edx, 6
and edx, 0x3e0
mov ebx, eax
shr ebx, 3
and ebx, 0x1f
or edx, ebx
shr eax, 9
and eax, 0x7c00
or edx, eax
or edx, 0x8000
mov word [edi], dx
add edi, 2
inc esi
dec ecx
jne 0x629a38
add edi, dword [ebp - 0xe4]
add esi, dword [ebp - 0xe8]
dec dword [ebp - 8]
jne 0x629a35
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x629cbe
cmp dword [ebp - 0xe8c], 0
jne 0x629cbe
cmp dword [ebp - 0xe98], 0xff0000
jne 0x629cbe
cmp dword [ebp - 0xe94], 0xff00
jne 0x629cbe
cmp dword [ebp - 0xe90], 0xff
jne 0x629cbe
mov edi, dword [ebp - 0xdc]
mov esi, dword [ebp - 0xe0]
mov edx, dword [ebp + 0x40]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
xor eax, eax
mov al, byte [esi]
mov eax, dword [ebp + eax*4 - 0x634]
or eax, 0xff000000
mov dword [edi], eax
inc esi
add edi, 4
dec ecx
jne 0x629ae9
add edi, dword [ebp - 0xe4]
add esi, dword [ebp - 0xe8]
dec ebx
jne 0x629ae6
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 1
jne 0x629cbe
cmp word [ebp - 0x654], 8
jne 0x629cbe
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xf4], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xf8], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0xec], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0xf0], edx
cmp word [ebp - 0xea4], 0x10
jne 0x629c3d
cmp dword [ebp - 0xe8c], 0x8000
jne 0x629c3d
cmp dword [ebp - 0xe98], 0x7c00
jne 0x629c3d
cmp dword [ebp - 0xe94], 0x3e0
jne 0x629c3d
cmp dword [ebp - 0xe90], 0x1f
jne 0x629c3d
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0xf0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x634]
cmp eax, dword [ebp + 0x40]
je 0x629bfc
or eax, 0x1000000
mov edx, eax
shr edx, 6
and edx, 0x3e0
mov ebx, eax
shr ebx, 3
and ebx, 0x1f
or edx, ebx
shr eax, 9
and eax, 0xfc00
or edx, eax
mov word [edi], dx
add edi, 2
inc esi
dec ecx
jne 0x629be8
add edi, dword [ebp - 0xf4]
add esi, dword [ebp - 0xf8]
dec dword [ebp - 8]
jne 0x629be5
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x629cbe
cmp dword [ebp - 0xe8c], 0xff000000
jne 0x629cbe
cmp dword [ebp - 0xe98], 0xff0000
jne 0x629cbe
cmp dword [ebp - 0xe94], 0xff00
jne 0x629cbe
cmp dword [ebp - 0xe90], 0xff
jne 0x629cbe
mov edi, dword [ebp - 0xec]
mov esi, dword [ebp - 0xf0]
mov edx, dword [ebp + 0x40]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x634]
cmp eax, edx
je 0x629c9f
or eax, 0xff000000
mov dword [edi], eax
inc esi
add edi, 4
dec ecx
jne 0x629c8c
add edi, dword [ebp - 0xf4]
add esi, dword [ebp - 0xf8]
dec ebx
jne 0x629c89
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 0
jne 0x629f1f
cmp word [ebp - 0x654], 0x18
jne 0x629f1f
cmp dword [ebp - 0x648], 0xff0000
jne 0x629f1f
cmp dword [ebp - 0x644], 0xff00
jne 0x629f1f
cmp dword [ebp - 0x640], 0xff
jne 0x629f1f
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x104], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x108], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0xfc], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x100], edx
cmp word [ebp - 0xea4], 0x10
jne 0x629e01
cmp dword [ebp - 0xe8c], 0
jne 0x629e01
cmp dword [ebp - 0xe98], 0xf800
jne 0x629e01
cmp dword [ebp - 0xe94], 0x7e0
jne 0x629e01
cmp dword [ebp - 0xe90], 0x1f
jne 0x629e01
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x100]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x104]
mov ecx, ebx
xor eax, eax
mov al, byte [esi + 2]
shr eax, 3
shl eax, 0xb
mov edx, eax
xor eax, eax
mov al, byte [esi + 1]
shr eax, 2
shl eax, 5
or edx, eax
xor eax, eax
mov al, byte [esi]
shr eax, 3
or edx, eax
mov word [edi], dx
add edi, 2
add esi, 3
dec ecx
jne 0x629dba
add edi, dword [ebp - 0x104]
add esi, dword [ebp - 0x108]
dec dword [ebp - 8]
jne 0x629db8
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x10
jne 0x629ea0
cmp dword [ebp - 0xe8c], 0
jne 0x629ea0
cmp dword [ebp - 0xe98], 0x7c00
jne 0x629ea0
cmp dword [ebp - 0xe94], 0x3e0
jne 0x629ea0
cmp dword [ebp - 0xe90], 0x1f
jne 0x629ea0
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x100]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0x104]
mov ecx, ebx
xor eax, eax
mov al, byte [esi + 2]
shr eax, 3
shl eax, 0xa
mov edx, eax
xor eax, eax
mov al, byte [esi + 1]
shr eax, 3
shl eax, 5
or edx, eax
xor eax, eax
mov al, byte [esi]
shr eax, 3
or eax, 0x8000
or edx, eax
mov word [edi], dx
add edi, 2
add esi, 3
dec ecx
jne 0x629e54
add edi, dword [ebp - 0x104]
add esi, dword [ebp - 0x108]
dec dword [ebp - 8]
jne 0x629e52
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62aa39
cmp dword [ebp - 0xe94], 0xff00
jne 0x62aa39
cmp dword [ebp - 0xe90], 0xff
jne 0x62aa39
push ebp
mov edi, dword [ebp - 0xfc]
mov esi, dword [ebp - 0x100]
mov eax, dword [ebp - 0x108]
push eax
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x104]
pop ebp
mov ecx, ebx
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [edi], 0xff
inc edi
dec ecx
jne 0x629f01
add edi, edx
add esi, ebp
dec eax
jne 0x629eff
pop ebp
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 1
jne 0x62a147
cmp word [ebp - 0x654], 0x18
jne 0x62a147
cmp dword [ebp - 0x648], 0xff0000
jne 0x62a147
cmp dword [ebp - 0x644], 0xff00
jne 0x62a147
cmp dword [ebp - 0x640], 0xff
jne 0x62a147
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x114], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x118], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x10c], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x110], edx
cmp word [ebp - 0xea4], 0x10
jne 0x62a0aa
cmp dword [ebp - 0xe8c], 0x8000
jne 0x62a0aa
cmp dword [ebp - 0xe98], 0x7c00
jne 0x62a0aa
cmp dword [ebp - 0xe94], 0x3e0
jne 0x62a0aa
cmp dword [ebp - 0xe90], 0x1f
jne 0x62a0aa
mov edi, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x110]
mov ebx, dword [ebp + 0x40]
mov ecx, dword [ebp - 4]
mov eax, dword [esi]
and eax, 0xffffff
cmp eax, ebx
je 0x62a067
xor edx, edx
and eax, 0xf8f8f8
shr eax, 3
mov dl, al
shr ax, 8
shl ax, 5
or dx, ax
shr eax, 0x10
shl eax, 0xa
or edx, eax
or edx, 0x8000
mov word [edi], dx
add edi, 2
add esi, 3
dec ecx
jne 0x62a029
jmp 0x62a092
xor edx, edx
and eax, 0xf8f8f8
shr eax, 3
mov dl, al
shr ax, 8
shl ax, 5
or dx, ax
shr eax, 0x10
shl eax, 0xa
or edx, eax
mov word [edi], dx
add edi, 2
add esi, 3
dec ecx
jne 0x62a029
add edi, dword [ebp - 0x114]
add esi, dword [ebp - 0x118]
dec dword [ebp - 8]
jne 0x62a026
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0xff000000
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62aa39
cmp dword [ebp - 0xe94], 0xff00
jne 0x62aa39
cmp dword [ebp - 0xe90], 0xff
jne 0x62aa39
mov edi, dword [ebp - 0x10c]
mov esi, dword [ebp - 0x110]
mov edx, dword [ebp + 0x40]
mov ebx, dword [ebp - 8]
mov ecx, dword [ebp - 4]
xor eax, eax
mov al, byte [esi + 2]
shl eax, 0x10
mov ax, word [esi]
cmp eax, edx
je 0x62a121
or eax, 0xff000000
mov dword [edi], eax
add esi, 3
add edi, 4
dec ecx
jne 0x62a10d
add edi, dword [ebp - 0x114]
add esi, dword [ebp - 0x118]
dec ebx
jne 0x62a10a
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 0
jne 0x62a2af
cmp dword [ebp - 0xc], 0
jne 0x62a2af
cmp word [ebp - 0x654], 0x20
jne 0x62a2af
cmp dword [ebp - 0x63c], 0
jne 0x62a2af
cmp dword [ebp - 0x648], 0xff0000
jne 0x62a2af
cmp dword [ebp - 0x644], 0xff00
jne 0x62a2af
cmp dword [ebp - 0x640], 0xff
jne 0x62a2af
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x124], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x128], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x11c], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x120], edx
cmp word [ebp - 0xea4], 0x10
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xf800
jne 0x62aa39
cmp dword [ebp - 0xe94], 0x7e0
jne 0x62aa39
cmp dword [ebp - 0xe90], 0x1f
jne 0x62aa39
mov edi, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x120]
mov ecx, dword [ebp - 4]
mov eax, dword [esi]
mov ebx, eax
mov edx, eax
and ebx, 0xf80000
and edx, 0xfc00
and eax, 0xf8
shr ebx, 8
shr edx, 5
shr eax, 3
or edx, ebx
or eax, edx
mov word [edi], ax
add edi, 2
add esi, 4
dec ecx
jne 0x62a262
add edi, dword [ebp - 0x124]
add esi, dword [ebp - 0x128]
dec dword [ebp - 8]
jne 0x62a25f
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 1
jne 0x62a4d9
cmp word [ebp - 0x654], 0x10
jne 0x62a4d9
cmp dword [ebp - 0x63c], 0
jne 0x62a4d9
cmp dword [ebp - 0x648], 0xf800
jne 0x62a4d9
cmp dword [ebp - 0x644], 0x7e0
jne 0x62a4d9
cmp dword [ebp - 0x640], 0x1f
jne 0x62a4d9
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x134], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x138], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x12c], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
xor ecx, ecx
add edx, dword [ebp + 0x14]
xor eax, eax
mov dword [ebp - 0x130], edx
xor edx, edx
mov cl, byte [ebp + 0x41]
mov al, byte [ebp + 0x42]
sar ecx, 3
mov dl, byte [ebp + 0x40]
sar eax, 3
shl ecx, 5
sar edx, 3
shl eax, 0xa
or edx, ecx
or edx, eax
mov dword [ebp - 0x13c], edx
cmp word [ebp - 0xea4], 0x10
jne 0x62a41e
cmp dword [ebp - 0xe8c], 0x8000
jne 0x62a41e
cmp dword [ebp - 0xe98], 0x7c00
jne 0x62a41e
cmp dword [ebp - 0xe94], 0x3e0
jne 0x62a41e
cmp dword [ebp - 0xe90], 0x1f
jne 0x62a41e
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov ebx, dword [ebp - 0x13c]
mov ecx, dword [ebp - 4]
xor eax, eax
mov ax, word [esi]
mov edx, eax
and edx, 0x1f
and eax, 0xffc0
shr eax, 1
or eax, edx
cmp eax, ebx
je 0x62a3fa
or eax, 0x8000
mov word [edi], ax
add edi, 2
add esi, 2
dec ecx
jne 0x62a3de
add edi, dword [ebp - 0x134]
add esi, dword [ebp - 0x138]
dec dword [ebp - 8]
jne 0x62a3db
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0xff000000
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62aa39
cmp dword [ebp - 0xe94], 0xff00
jne 0x62aa39
cmp dword [ebp - 0xe90], 0xff
jne 0x62aa39
mov edi, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x130]
mov ecx, dword [ebp - 4]
xor eax, eax
mov ax, word [esi]
mov edx, eax
mov ebx, eax
and edx, 0x1f
and eax, 0x7e0
and ebx, 0xf800
shl edx, 3
shl eax, 5
shl ebx, 8
or eax, edx
or eax, ebx
xor edx, edx
mov dx, word [esi]
cmp edx, dword [ebp - 0x13c]
je 0x62a4b1
or eax, 0xff000000
mov dword [edi], eax
add edi, 4
add esi, 2
dec ecx
jne 0x62a47b
add edi, dword [ebp - 0x134]
add esi, dword [ebp - 0x138]
dec dword [ebp - 8]
jne 0x62a478
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 0
jne 0x62a821
cmp dword [ebp - 0xc], 0
jne 0x62a821
cmp word [ebp - 0x654], 0x10
jne 0x62a821
cmp dword [ebp - 0x63c], 0
jne 0x62a821
cmp dword [ebp - 0x648], 0xf800
jne 0x62a821
cmp dword [ebp - 0x644], 0x7e0
jne 0x62a821
cmp dword [ebp - 0x640], 0x1f
jne 0x62a821
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x148], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x14c], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x140], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x144], edx
cmp word [ebp - 0xea4], 0x18
jne 0x62a635
cmp dword [ebp - 0xe8c], 0
jne 0x62a635
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62a635
cmp dword [ebp - 0xe94], 0xff00
jne 0x62a635
cmp dword [ebp - 0xe90], 0xff
jne 0x62a635
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebp - 4]
mov ax, word [esi]
mov ebx, eax
mov edx, eax
and ebx, 0xf800
and edx, 0x7e0
and eax, 0x1f
shl ebx, 8
shl edx, 5
shl eax, 3
or edx, ebx
or eax, edx
mov word [edi], ax
shr eax, 0x10
mov byte [edi + 2], al
add edi, 3
add esi, 2
dec ecx
jne 0x62a5e8
add edi, dword [ebp - 0x148]
add esi, dword [ebp - 0x14c]
dec dword [ebp - 8]
jne 0x62a5e5
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x20
jne 0x62a6c5
cmp dword [ebp - 0xe8c], 0
jne 0x62a6c5
cmp dword [ebp - 0xe98], 0xff0000
jne 0x62a6c5
cmp dword [ebp - 0xe94], 0xff00
jne 0x62a6c5
cmp dword [ebp - 0xe90], 0xff
jne 0x62a6c5
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebp - 4]
mov ax, word [esi]
mov ebx, eax
mov edx, eax
and ebx, 0xf800
and edx, 0x7e0
and eax, 0x1f
shl ebx, 8
shl edx, 5
shl eax, 3
or edx, ebx
or eax, edx
mov dword [edi], eax
add edi, 4
add esi, 2
dec ecx
jne 0x62a67f
add edi, dword [ebp - 0x148]
add esi, dword [ebp - 0x14c]
dec dword [ebp - 8]
jne 0x62a67c
xor eax, eax
jmp 0x62b8d3
cmp word [ebp - 0xea4], 0x10
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0
jne 0x62aa39
cmp dword [ebp - 0xe98], 0x7c00
jne 0x62aa39
cmp dword [ebp - 0xe94], 0x3e0
jne 0x62aa39
cmp dword [ebp - 0xe90], 0x1f
jne 0x62aa39
call fcn.00611cd0
dec eax
jne 0x62a7ad
mov eax, 0xffc0ffc0
mov ebx, 0x1f001f
movd mm0, eax
movd mm1, ebx
movq mm2, mm0
movq mm3, mm1
psllq mm2, 0x20
psllq mm3, 0x20
por mm0, mm2
por mm1, mm3
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebp - 4]
shr ecx, 2
je 0x62a770
movq mm2, qword [esi]
movq mm3, mm2
pand mm2, mm0
pand mm3, mm1
psrlq mm2, 1
por mm2, mm3
movq qword [edi], mm2
add edi, 8
add esi, 8
dec ecx
jne 0x62a751
mov ecx, dword [ebp - 4]
and ecx, 3
je 0x62a798
mov ax, word [esi]
mov ebx, eax
and ebx, 0xffc0ffc0
and eax, 0x1f001f
shr ebx, 1
or eax, ebx
mov word [edi], ax
add edi, 2
add esi, 2
dec ecx
jne 0x62a778
add edi, dword [ebp - 0x148]
add esi, dword [ebp - 0x14c]
dec dword [ebp - 8]
jne 0x62a749
emms
jmp 0x62a815
mov edi, dword [ebp - 0x140]
mov esi, dword [ebp - 0x144]
mov ecx, dword [ebp - 4]
shr ecx, 1
je 0x62a7de
mov eax, dword [esi]
mov ebx, eax
and ebx, 0xffc0ffc0
and eax, 0x1f001f
shr ebx, 1
or eax, ebx
mov dword [edi], eax
add edi, 4
add esi, 4
dec ecx
jne 0x62a7c0
test dword [ebp - 4], 1
je 0x62a804
mov ax, word [esi]
mov ebx, eax
and ebx, 0xffc0ffc0
and eax, 0x1f001f
shr ebx, 1
or eax, ebx
mov word [edi], ax
add edi, 2
add esi, 2
add edi, dword [ebp - 0x148]
add esi, dword [ebp - 0x14c]
dec dword [ebp - 8]
jne 0x62a7b9
xor eax, eax
jmp 0x62b8d3
cmp dword [ebp + 0x3c], 0
jne 0x62aa39
cmp dword [ebp - 0xc], 0
jne 0x62aa39
cmp word [ebp - 0x654], 0x10
jne 0x62aa39
cmp dword [ebp - 0x63c], 0
jne 0x62aa39
cmp dword [ebp - 0x648], 0x7c00
jne 0x62aa39
cmp dword [ebp - 0x644], 0x3e0
jne 0x62aa39
cmp dword [ebp - 0x640], 0x1f
jne 0x62aa39
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x158], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x15c], edx
movzx eax, word [ebp - 0xea2]
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x150], ecx
movzx ecx, word [ebp - 0x652]
mov edx, dword [edi]
mov eax, dword [edi + 4]
imul eax, dword [ebp + 0x18]
imul edx, ecx
add edx, eax
add edx, dword [ebp + 0x14]
mov dword [ebp - 0x154], edx
cmp word [ebp - 0xea4], 0x10
jne 0x62aa39
cmp dword [ebp - 0xe8c], 0
jne 0x62aa39
cmp dword [ebp - 0xe98], 0xf800
jne 0x62aa39
cmp dword [ebp - 0xe94], 0x7e0
jne 0x62aa39
cmp dword [ebp - 0xe90], 0x1f
jne 0x62aa39
call fcn.00611cd0
dec eax
jne 0x62a9ca
mov eax, 0x7fe07fe0
mov ebx, 0x3f003f
movd mm0, eax
movd mm1, ebx
movq mm2, mm0
movq mm3, mm1
psllq mm2, 0x20
psllq mm3, 0x20
por mm0, mm2
por mm1, mm3
mov edi, dword [ebp - 0x150]
mov esi, dword [ebp - 0x154]
mov ecx, dword [ebp - 4]
shr ecx, 2
je 0x62a98d
movq mm2, qword [esi]
movq mm3, mm2
pand mm2, mm0
pand mm3, mm1
psllq mm2, 1
por mm2, mm3
movq qword [edi], mm2
add edi, 8
add esi, 8
dec ecx
jne 0x62a96e
mov ecx, dword [ebp - 4]
and ecx, 3
je 0x62a9b5
mov ax, word [esi]
mov ebx, eax
and ebx, 0x7fe07fe0
and eax, 0x3f003f
shl ebx, 1
or eax, ebx
mov word [edi], ax
add edi, 2
add esi, 2
dec ecx
jne 0x62a995
add edi, dword [ebp - 0x158]
add esi, dword [ebp - 0x15c]
dec dword [ebp - 8]
jne 0x62a966
emms
jmp 0x62aa32
mov edi, dword [ebp - 0x150]
mov esi, dword [ebp - 0x154]
mov ecx, dword [ebp - 4]
shr ecx, 1
je 0x62a9fb
mov eax, dword [esi]
mov ebx, eax
and ebx, 0x7fe07fe0
and eax, 0x3f003f
shl ebx, 1
or eax, ebx
mov dword [edi], eax
add edi, 4
add esi, 4
dec ecx
jne 0x62a9dd
test dword [ebp - 4], 1
je 0x62aa21
mov ax, word [esi]
mov ebx, eax
and ebx, 0x7fe07fe0
and eax, 0x3f003f
shl ebx, 1
or eax, ebx
mov word [edi], ax
add edi, 2
add esi, 2
add edi, dword [ebp - 0x158]
add esi, dword [ebp - 0x15c]
dec dword [ebp - 8]
jne 0x62a9d6
xor eax, eax
jmp 0x62b8d3
mov byte [ebp - 0x1a1], 0
mov byte [ebp - 0x1a2], 0
mov byte [ebp - 0x1a3], 0
mov byte [ebp - 0x1a4], 0
mov dl, byte [ebp - 0xea0]
cmp dl, byte [ebp - 0x650]
jne 0x62aa83
mov cl, byte [ebp - 0x64f]
cmp cl, byte [ebp - 0xe9f]
jne 0x62aa83
mov al, byte [ebp - 0xea0]
cmp al, byte [ebp - 0x650]
jne 0x62aa83
xor edx, edx
jmp 0x62aa88
mov edx, 1
mov byte [ebp - 0x19d], dl
cmp dword [ebp - 0x10], 0
je 0x62aaa9
mov cl, byte [ebp - 0xa78]
cmp cl, byte [ebp - 0xe9d]
je 0x62aaa9
mov byte [ebp - 0x19d], 1
lea eax, [ebp - 0x634]
lea edx, [ebp - 0xa5c]
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1cc], edx
mov cx, word [ebp - 0x654]
sub cx, 8
je 0x62aafd
sub cx, 8
je 0x62aae2
sub cx, 8
je 0x62aaeb
sub cx, 8
je 0x62aaf4
jmp 0x62ab04
mov byte [ebp - 0x19f], 0
jmp 0x62ab04
mov byte [ebp - 0x19f], 1
jmp 0x62ab04
mov byte [ebp - 0x19f], 2
jmp 0x62ab04
mov byte [ebp - 0x19f], 3
mov eax, dword [ebp - 0x648]
or eax, dword [ebp - 0x644]
or eax, dword [ebp - 0x640]
or eax, dword [ebp - 0x63c]
mov dword [ebp - 0x1d0], eax
cmp dword [ebp + 0x3c], 0
jne 0x62ab7b
mov dx, word [ebp - 0x654]
sub dx, 8
je 0x62ab61
sub dx, 8
je 0x62ab49
sub dx, 8
je 0x62ab52
sub dx, 8
je 0x62ab5b
jmp 0x62ab68
and dword [ebp + 0x40], 0xffff
jmp 0x62ab68
and dword [ebp + 0x40], 0xffffff
jmp 0x62ab68
and dword [ebp + 0x40], 0xffffffff
jmp 0x62ab68
and dword [ebp + 0x40], 0xff
cmp word [ebp - 0x654], 8
je 0x62ab7b
mov ecx, dword [ebp - 0x1d0]
and dword [ebp + 0x40], ecx
mov ax, word [ebp - 0xea4]
sub ax, 8
je 0x62abb7
sub ax, 8
je 0x62ab9c
sub ax, 8
je 0x62aba5
sub ax, 8
je 0x62abae
jmp 0x62abbe
mov byte [ebp - 0x19e], 0
jmp 0x62abbe
mov byte [ebp - 0x19e], 1
jmp 0x62abbe
mov byte [ebp - 0x19e], 2
jmp 0x62abbe
mov byte [ebp - 0x19e], 3
mov dx, word [ebp - 0xa7c]
sub dx, 8
je 0x62abfa
sub dx, 8
je 0x62abdf
sub dx, 8
je 0x62abe8
sub dx, 8
je 0x62abf1
jmp 0x62ac01
mov byte [ebp - 0x1a0], 0
jmp 0x62ac01
mov byte [ebp - 0x1a0], 1
jmp 0x62ac01
mov byte [ebp - 0x1a0], 2
jmp 0x62ac01
mov byte [ebp - 0x1a0], 3
cmp byte [ebp - 0x19d], 1
jne 0x62af73
mov cl, byte [ebp - 0x650]
sub cl, byte [ebp - 0xea0]
mov byte [ebp - 0x1a1], cl
mov al, byte [ebp - 0x64f]
sub al, byte [ebp - 0xe9f]
mov byte [ebp - 0x1a2], al
mov dl, byte [ebp - 0x64e]
sub dl, byte [ebp - 0xe9e]
mov byte [ebp - 0x1a3], dl
cmp dword [ebp - 0x10], 0
je 0x62ac52
mov cl, byte [ebp - 0xa78]
jmp 0x62ac58
mov cl, byte [ebp - 0x64d]
sub cl, byte [ebp - 0xe9d]
mov byte [ebp - 0x1a4], cl
mov cl, byte [ebp - 0x1a1]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1d4], eax
mov cl, byte [ebp - 0x1a2]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1d8], eax
mov cl, byte [ebp - 0x1a3]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1dc], eax
mov cl, byte [ebp - 0x1a4]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1e0], eax
cmp dword [ebp + 0x44], 1
jne 0x62adc7
xor edx, edx
mov dword [ebp - 0x1e4], edx
lea eax, [ebp - 0xfa4]
mov dword [ebp - 0x22c], eax
lea edx, [ebp - 0xf24]
mov dword [ebp - 0x228], edx
lea ecx, [ebp - 0xf64]
mov dword [ebp - 0x224], ecx
lea eax, [ebp - 0xee4]
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], 0x6c3004
mov edx, dword [ebp - 0x21c]
mov cl, byte [ebp - 0x64c]
mov eax, dword [edx]
imul dword [ebp - 0x1d4]
shr eax, 4
mov edx, dword [ebp - 0x220]
shl eax, cl
mov dword [edx], eax
mov eax, dword [ebp - 0x21c]
mov cl, byte [ebp - 0x64b]
mov edx, dword [eax]
imul edx, dword [ebp - 0x1d8]
shr edx, 4
shl edx, cl
mov ecx, dword [ebp - 0x224]
mov dword [ecx], edx
mov eax, dword [ebp - 0x21c]
mov cl, byte [ebp - 0x64a]
mov edx, dword [eax]
mov eax, dword [ebp - 0x228]
imul edx, dword [ebp - 0x1dc]
shr edx, 4
shl edx, cl
mov dword [eax], edx
cmp dword [ebp - 0x10], 0
je 0x62ad6f
mov cl, byte [ebp - 0xa74]
jmp 0x62ad75
mov cl, byte [ebp - 0x649]
mov eax, dword [ebp - 0x21c]
mov edx, dword [eax]
mov eax, dword [ebp - 0x22c]
imul edx, dword [ebp - 0x1e0]
shr edx, 4
shl edx, cl
mov dword [eax], edx
inc dword [ebp - 0x1e4]
add dword [ebp - 0x22c], 4
add dword [ebp - 0x228], 4
add dword [ebp - 0x224], 4
add dword [ebp - 0x220], 4
add dword [ebp - 0x21c], 4
cmp dword [ebp - 0x1e4], 0x10
jl 0x62acfc
mov cl, byte [ebp - 0x64c]
mov edx, dword [ebp - 0x1d4]
dec edx
shl edx, cl
mov dword [ebp - 0x160], edx
mov cl, byte [ebp - 0x64b]
mov eax, dword [ebp - 0x1d8]
dec eax
shl eax, cl
mov dword [ebp - 0x164], eax
mov cl, byte [ebp - 0x64a]
mov eax, dword [ebp - 0x1dc]
dec eax
shl eax, cl
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x10], 0
je 0x62ae14
mov cl, byte [ebp - 0xa74]
jmp 0x62ae1a
mov cl, byte [ebp - 0x649]
mov eax, dword [ebp - 0x1e0]
dec eax
shl eax, cl
mov dword [ebp - 0x16c], eax
mov edx, dword [ebp - 0xe98]
or edx, dword [ebp - 0xe94]
or edx, dword [ebp - 0xe90]
or edx, dword [ebp - 0xe8c]
not edx
mov dword [ebp - 0x17c], edx
mov eax, dword [ebp - 0xe98]
or eax, dword [ebp - 0xe94]
or eax, dword [ebp - 0xe90]
not eax
mov dword [ebp - 0x180], eax
mov cl, byte [ebp - 0x64c]
mov edx, dword [ebp - 0x648]
shr edx, cl
mov dword [ebp - 0x1b8], edx
mov cl, byte [ebp - 0x64b]
mov eax, dword [ebp - 0x644]
shr eax, cl
mov dword [ebp - 0x1bc], eax
mov cl, byte [ebp - 0x64a]
mov eax, dword [ebp - 0x640]
shr eax, cl
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x10], 0
je 0x62aeb5
mov cl, byte [ebp - 0xa74]
mov eax, dword [ebp - 0xa70]
shr eax, cl
jmp 0x62aec3
mov cl, byte [ebp - 0x649]
mov eax, dword [ebp - 0x63c]
shr eax, cl
mov dword [ebp - 0x1c4], eax
xor eax, eax
xor ecx, ecx
mov al, byte [ebp - 0x650]
mov cl, byte [ebp - 0xea0]
mov edx, 1
sub ecx, eax
xor eax, eax
shl edx, cl
dec edx
xor ecx, ecx
mov dword [ebp - 0x1a8], edx
mov edx, 1
mov al, byte [ebp - 0x64f]
mov cl, byte [ebp - 0xe9f]
sub ecx, eax
xor eax, eax
shl edx, cl
dec edx
xor ecx, ecx
mov dword [ebp - 0x1ac], edx
mov edx, 1
mov cl, byte [ebp - 0xe9e]
mov al, byte [ebp - 0x64e]
sub ecx, eax
shl edx, cl
dec edx
mov dword [ebp - 0x1b0], edx
cmp dword [ebp - 0x10], 0
je 0x62af37
mov al, byte [ebp - 0xa78]
jmp 0x62af3d
mov al, byte [ebp - 0x64d]
xor edx, edx
xor ecx, ecx
mov cl, byte [ebp - 0xe9d]
mov dl, al
sub ecx, edx
mov eax, 1
shl eax, cl
dec eax
xor edx, edx
mov dword [ebp - 0x1b4], eax
mov dword [ebp - 0x188], edx
mov dword [ebp - 0x18c], edx
mov dword [ebp - 0x184], edx
mov dword [ebp - 0x190], edx
cmp dword [ebp + 0x3c], 0
je 0x62b076
mov eax, dword [ebp + 0x40]
shr eax, 0x10
and eax, 0xff
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp + 0x40]
shr ecx, 8
and ecx, 0xff
mov dword [ebp - 0x198], ecx
mov eax, dword [ebp + 0x40]
and eax, 0xff
mov dword [ebp - 0x19c], eax
push 0xff
mov edx, dword [ebp - 0x19c]
push edx
mov ecx, dword [ebp - 0x198]
push ecx
mov eax, dword [ebp - 0x194]
push eax
lea edx, [ebp - 0x654]
push edx
call fcn.0062b8dc
add esp, 0x14
mov dword [ebp - 0x1e8], eax
cmp word [ebp - 0x654], 8
jne 0x62b028
mov ecx, dword [ebp - 0x1e8]
xor eax, eax
mov al, byte [ebp + ecx*4 - 0x632]
mov dword [ebp - 0x194], eax
mov edx, dword [ebp - 0x1e8]
xor ecx, ecx
mov cl, byte [ebp + edx*4 - 0x633]
mov dword [ebp - 0x198], ecx
mov eax, dword [ebp - 0x1e8]
xor edx, edx
mov dl, byte [ebp + eax*4 - 0x634]
mov dword [ebp - 0x19c], edx
jmp 0x62b076
mov cl, byte [ebp - 0x64c]
mov eax, dword [ebp - 0x1e8]
and eax, dword [ebp - 0x648]
shr eax, cl
mov dword [ebp - 0x194], eax
mov cl, byte [ebp - 0x64b]
mov edx, dword [ebp - 0x1e8]
and edx, dword [ebp - 0x644]
shr edx, cl
mov dword [ebp - 0x198], edx
mov cl, byte [ebp - 0x64a]
mov eax, dword [ebp - 0x1e8]
and eax, dword [ebp - 0x640]
shr eax, cl
mov dword [ebp - 0x19c], eax
cmp dword [ebp + 0x38], 0
jne 0x62b0bf
movzx edx, word [ebp - 0xea2]
imul edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp - 0x174], eax
movzx edx, word [ebp - 0x652]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
sub ecx, edx
mov dword [ebp - 0x170], ecx
movzx eax, word [ebp - 0xa7a]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x24]
sub edx, eax
mov dword [ebp - 0x178], edx
jmp 0x62b0fe
movzx ecx, word [ebp - 0xea2]
imul ecx, dword [ebp - 4]
add ecx, dword [ebp + 0xc]
mov dword [ebp - 0x174], ecx
movzx eax, word [ebp - 0x652]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x170], edx
movzx ecx, word [ebp - 0xa7a]
imul ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x24]
sub eax, ecx
mov dword [ebp - 0x178], eax
mov edx, dword [ebp - 0xe88]
mov dword [ebp - 0x1fc], edx
cmp dword [ebp + 0x38], 1
jne 0x62b14d
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
movzx eax, word [ebp - 0xea2]
imul dword [ebp + 0x2c]
add ecx, eax
mov edx, dword [ebp - 4]
dec edx
movzx eax, word [ebp - 0xea2]
imul edx, eax
add ecx, edx
add ecx, dword [ebp + 8]
mov dword [ebp - 0x1ec], ecx
movzx edx, word [ebp - 0xea2]
neg edx
mov dword [ebp - 0x208], edx
jmp 0x62b176
mov ecx, dword [ebp + 0x30]
imul ecx, dword [ebp + 0xc]
movzx eax, word [ebp - 0xea2]
imul dword [ebp + 0x2c]
add ecx, eax
add ecx, dword [ebp + 8]
mov dword [ebp - 0x1ec], ecx
movzx edx, word [ebp - 0xea2]
mov dword [ebp - 0x208], edx
movzx eax, word [ebp - 0x652]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
imul edx, dword [ebp + 0x18]
imul ecx, eax
add ecx, edx
add ecx, dword [ebp + 0x14]
mov dword [ebp - 0x1f0], ecx
movzx eax, word [ebp - 0xa7a]
mov ecx, dword [edi]
mov edx, dword [edi + 4]
imul edx, dword [ebp + 0x24]
imul ecx, eax
add ecx, edx
add ecx, dword [ebp + 0x20]
mov dword [ebp - 0x1f4], ecx
xor ecx, ecx
mov dword [ebp - 0x200], ecx
mov eax, dword [ebp - 0x200]
cmp eax, dword [ebp - 8]
jge 0x62b8d1
xor edx, edx
mov dword [ebp - 0x204], edx
mov ecx, dword [ebp - 0x204]
cmp ecx, dword [ebp - 4]
jge 0x62b898
mov al, byte [ebp - 0x19f]
sub al, 1
jb 0x62b1f6
je 0x62b201
dec al
je 0x62b21c
dec al
je 0x62b226
jmp 0x62b239
mov edx, dword [ebp - 0x1f0]
movzx ebx, word [edx]
jmp 0x62b239
mov eax, dword [ebp - 0x1f0]
movzx ebx, word [eax]
mov eax, dword [ebp - 0x1f0]
xor edx, edx
mov dl, byte [eax + 2]
shl edx, 0x10
or ebx, edx
jmp 0x62b239
mov ecx, dword [ebp - 0x1f0]
mov ebx, dword [ecx]
jmp 0x62b239
mov eax, dword [ebp - 0x1f0]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0x1c8]
mov ebx, dword [ecx + edx*4]
cmp dword [ebp + 0x50], 0
je 0x62b264
cmp byte [ebp - 0x19f], 3
je 0x62b25b
mov eax, dword [ebp - 0x1d0]
and eax, ebx
cmp eax, dword [ebp + 0x40]
je 0x62b85d
jmp 0x62b264
cmp ebx, dword [ebp + 0x40]
je 0x62b85d
cmp dword [ebp - 0x10], 1
jne 0x62b2dc
mov dl, byte [ebp - 0x1a0]
sub dl, 1
jb 0x62b281
je 0x62b292
dec dl
je 0x62b2b3
dec dl
je 0x62b2c3
jmp 0x62b2dc
mov ecx, dword [ebp - 0x1f4]
movzx eax, word [ecx]
mov dword [ebp - 0x1f8], eax
jmp 0x62b2dc
mov edx, dword [ebp - 0x1f4]
mov eax, dword [ebp - 0x1f4]
movzx ecx, word [edx]
xor edx, edx
mov dl, byte [eax + 2]
shl edx, 0x10
or ecx, edx
mov dword [ebp - 0x1f8], ecx
jmp 0x62b2dc
mov ecx, dword [ebp - 0x1f4]
mov eax, dword [ecx]
mov dword [ebp - 0x1f8], eax
jmp 0x62b2dc
mov edx, dword [ebp - 0x1f4]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0x1cc]
mov edx, dword [eax + ecx*4]
mov dword [ebp - 0x1f8], edx
mov edi, dword [ebp - 0x648]
mov cl, byte [ebp - 0x64c]
and edi, ebx
mov eax, dword [ebp - 0x644]
shr edi, cl
mov cl, byte [ebp - 0x64b]
and eax, ebx
shr eax, cl
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x640]
mov cl, byte [ebp - 0x64a]
and eax, ebx
shr eax, cl
mov dword [ebp - 0x20c], eax
cmp byte [ebp - 0xe9d], 0
je 0x62b365
cmp dword [ebp + 0x3c], 1
jne 0x62b365
cmp edi, dword [ebp - 0x194]
jne 0x62b352
mov edx, dword [ebp - 0x210]
cmp edx, dword [ebp - 0x198]
jne 0x62b352
mov eax, dword [ebp - 0x20c]
cmp eax, dword [ebp - 0x19c]
jne 0x62b352
xor esi, esi
jmp 0x62b448
mov cl, byte [ebp - 0xe99]
mov esi, dword [ebp - 0xe8c]
shr esi, cl
jmp 0x62b448
cmp dword [ebp - 0x10], 1
jne 0x62b3c9
mov cl, byte [ebp - 0xa74]
mov esi, dword [ebp - 0x1f8]
and esi, dword [ebp - 0xa70]
shr esi, cl
cmp byte [ebp - 0x1a4], 0
je 0x62b440
test byte [ebp - 0x1a4], 0x80
je 0x62b3bf
xor ecx, ecx
mov cl, byte [ebp - 0x1a4]
not ecx
inc ecx
mov eax, esi
shl eax, cl
mov ecx, eax
mov eax, esi
imul dword [ebp - 0x1b4]
xor edx, edx
div dword [ebp - 0x1c4]
add ecx, eax
mov esi, ecx
jmp 0x62b440
mov cl, byte [ebp - 0x1a4]
shr esi, cl
jmp 0x62b440
cmp byte [ebp - 0x64d], 0
jne 0x62b3e2
mov cl, byte [ebp - 0xe99]
mov esi, dword [ebp - 0xe8c]
shr esi, cl
jmp 0x62b440
cmp dword [ebp - 0xe8c], 0
jne 0x62b3ef
xor esi, esi
jmp 0x62b440
mov cl, byte [ebp - 0x649]
mov esi, dword [ebp - 0x63c]
and esi, ebx
shr esi, cl
cmp byte [ebp - 0x1a4], 0
je 0x62b440
test byte [ebp - 0x1a4], 0x80
je 0x62b438
xor ecx, ecx
mov cl, byte [ebp - 0x1a4]
not ecx
inc ecx
mov eax, esi
shl eax, cl
mov ecx, eax
mov eax, esi
imul dword [ebp - 0x1b4]
xor edx, edx
div dword [ebp - 0x1c4]
add ecx, eax
mov esi, ecx
jmp 0x62b440
mov cl, byte [ebp - 0x1a4]
shr esi, cl
cmp dword [ebp + 0x4c], 0
je 0x62b448
mov esi, edi
cmp byte [ebp - 0x1a1], 0
je 0x62b489
test byte [ebp - 0x1a1], 0x80
je 0x62b481
xor ecx, ecx
mov cl, byte [ebp - 0x1a1]
not ecx
inc ecx
mov eax, edi
shl eax, cl
mov ecx, eax
mov eax, edi
imul dword [ebp - 0x1a8]
xor edx, edx
div dword [ebp - 0x1b8]
add ecx, eax
mov edi, ecx
jmp 0x62b489
mov cl, byte [ebp - 0x1a1]
shr edi, cl
cmp byte [ebp - 0x1a2], 0
je 0x62b4da
test byte [ebp - 0x1a2], 0x80
je 0x62b4ce
xor ecx, ecx
mov cl, byte [ebp - 0x1a2]
not ecx
inc ecx
mov eax, dword [ebp - 0x210]
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x210]
imul dword [ebp - 0x1ac]
xor edx, edx
div dword [ebp - 0x1bc]
add ecx, eax
mov dword [ebp - 0x210], ecx
jmp 0x62b4da
mov cl, byte [ebp - 0x1a2]
shr dword [ebp - 0x210], cl
cmp byte [ebp - 0x1a3], 0
je 0x62b52b
test byte [ebp - 0x1a3], 0x80
je 0x62b51f
xor ecx, ecx
mov cl, byte [ebp - 0x1a3]
not ecx
inc ecx
mov eax, dword [ebp - 0x20c]
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x20c]
imul dword [ebp - 0x1b0]
xor edx, edx
div dword [ebp - 0x1c0]
add ecx, eax
mov dword [ebp - 0x20c], ecx
jmp 0x62b52b
mov cl, byte [ebp - 0x1a3]
shr dword [ebp - 0x20c], cl
cmp dword [ebp + 0x48], 0
je 0x62b541
xor eax, eax
mov edi, eax
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x210], eax
mov cl, byte [ebp - 0xe9c]
mov eax, edi
shl eax, cl
mov cl, byte [ebp - 0xe9a]
mov edx, dword [ebp - 0x20c]
shl edx, cl
or eax, edx
mov cl, byte [ebp - 0xe9b]
mov edx, dword [ebp - 0x210]
shl edx, cl
or eax, edx
mov cl, byte [ebp - 0xe99]
shl esi, cl
or eax, esi
cmp byte [ebp - 0x19d], 0
je 0x62b805
mov ecx, dword [ebp - 0xe90]
mov edx, dword [ebp - 0xe98]
and ecx, eax
mov esi, dword [ebp - 0xe94]
mov dword [ebp - 0x214], ecx
and esi, eax
mov ecx, dword [ebp - 0xe8c]
and edx, eax
and ecx, eax
mov dword [ebp - 0x218], ecx
mov ecx, dword [ebp + 0x44]
dec ecx
je 0x62b5c0
dec ecx
je 0x62b6b5
jmp 0x62b79d
mov ecx, dword [ebp - 0x200]
mov edi, dword [ebp - 0x204]
and ecx, 3
and edi, 3
shl ecx, 2
add ecx, edi
mov edi, dword [ebp - 0x160]
and edi, ebx
mov ecx, dword [ebp + ecx*4 - 0xee4]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebp - 0xe9c]
shl edi, cl
mov ecx, dword [ebp - 0x200]
add edx, edi
and ecx, 3
mov edi, dword [ebp - 0x204]
shl ecx, 2
and edi, 3
add ecx, edi
mov edi, dword [ebp - 0x164]
and edi, ebx
mov ecx, dword [ebp + ecx*4 - 0xf64]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebp - 0xe9b]
shl edi, cl
mov ecx, dword [ebp - 0x200]
add esi, edi
and ecx, 3
mov edi, dword [ebp - 0x204]
shl ecx, 2
and edi, 3
add ecx, edi
mov edi, dword [ebp - 0x168]
and edi, ebx
mov ecx, dword [ebp + ecx*4 - 0xf24]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebp - 0xe9a]
shl edi, cl
add dword [ebp - 0x214], edi
mov ecx, dword [ebp - 0x200]
mov edi, dword [ebp - 0x204]
and ecx, 3
and edi, 3
shl ecx, 2
add ecx, edi
mov edi, dword [ebp - 0x16c]
and edi, ebx
mov ecx, dword [ebp + ecx*4 - 0xfa4]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebp - 0xe99]
shl edi, cl
add dword [ebp - 0x218], edi
jmp 0x62b79d
mov ecx, dword [ebp - 0x160]
and ecx, ebx
add dword [ebp - 0x184], ecx
mov ecx, dword [ebp - 0x164]
and ecx, ebx
add dword [ebp - 0x188], ecx
mov ecx, dword [ebp - 0x168]
and ecx, ebx
add dword [ebp - 0x18c], ecx
mov ecx, dword [ebp - 0x16c]
and ecx, ebx
add dword [ebp - 0x190], ecx
mov cl, byte [ebp - 0xe9c]
mov edi, dword [ebp - 0x184]
cmp edi, dword [ebp - 0x160]
mov edi, 1
ja 0x62b707
dec edi
shl edi, cl
add edx, edi
mov edi, dword [ebp - 0x188]
cmp edi, dword [ebp - 0x164]
mov edi, 1
mov cl, byte [ebp - 0xe9b]
ja 0x62b725
dec edi
shl edi, cl
add esi, edi
mov edi, dword [ebp - 0x18c]
cmp edi, dword [ebp - 0x168]
mov edi, 1
mov cl, byte [ebp - 0xe9a]
ja 0x62b743
dec edi
shl edi, cl
add dword [ebp - 0x214], edi
mov cl, byte [ebp - 0xe99]
mov edi, dword [ebp - 0x190]
cmp edi, dword [ebp - 0x16c]
mov edi, 1
ja 0x62b765
dec edi
shl edi, cl
add dword [ebp - 0x218], edi
mov ecx, dword [ebp - 0x160]
and dword [ebp - 0x184], ecx
mov ecx, dword [ebp - 0x164]
and dword [ebp - 0x188], ecx
mov ecx, dword [ebp - 0x168]
and dword [ebp - 0x18c], ecx
mov ecx, dword [ebp - 0x16c]
and dword [ebp - 0x190], ecx
cmp edx, dword [ebp - 0xe98]
jbe 0x62b7ab
mov edx, dword [ebp - 0xe98]
cmp esi, dword [ebp - 0xe94]
jbe 0x62b7b9
mov esi, dword [ebp - 0xe94]
mov ecx, dword [ebp - 0xe90]
cmp ecx, dword [ebp - 0x214]
jae 0x62b7d3
mov ecx, dword [ebp - 0xe90]
mov dword [ebp - 0x214], ecx
mov ecx, dword [ebp - 0xe8c]
cmp ecx, dword [ebp - 0x218]
jae 0x62b7ed
mov ecx, dword [ebp - 0xe8c]
mov dword [ebp - 0x218], ecx
and eax, dword [ebp - 0x17c]
or edx, eax
or edx, dword [ebp - 0x214]
or esi, edx
or esi, dword [ebp - 0x218]
mov eax, esi
mov dl, byte [ebp - 0x19e]
sub dl, 1
jb 0x62b81c
je 0x62b82e
dec dl
je 0x62b845
dec dl
je 0x62b855
jmp 0x62b85d
or ax, word [ebp - 0x1fc]
mov edx, dword [ebp - 0x1ec]
mov word [edx], ax
jmp 0x62b85d
mov ecx, dword [ebp - 0x1ec]
mov word [ecx], ax
shr eax, 0x10
mov edx, dword [ebp - 0x1ec]
mov byte [edx + 2], al
jmp 0x62b85d
or eax, dword [ebp - 0x1fc]
mov ecx, dword [ebp - 0x1ec]
mov dword [ecx], eax
jmp 0x62b85d
mov edx, dword [ebp - 0x1ec]
mov byte [edx], al
inc dword [ebp - 0x204]
mov eax, dword [ebp - 0x208]
add dword [ebp - 0x1ec], eax
movzx ecx, word [ebp - 0x652]
add dword [ebp - 0x1f0], ecx
movzx eax, word [ebp - 0xa7a]
add dword [ebp - 0x1f4], eax
mov edx, dword [ebp - 0x204]
cmp edx, dword [ebp - 4]
jl 0x62b1e0
inc dword [ebp - 0x200]
mov ecx, dword [ebp - 0x174]
add dword [ebp - 0x1ec], ecx
mov eax, dword [ebp - 0x170]
add dword [ebp - 0x1f0], eax
mov edx, dword [ebp - 0x178]
add dword [ebp - 0x1f4], edx
mov ecx, dword [ebp - 0x200]
cmp ecx, dword [ebp - 8]
jl 0x62b1c9
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret