Function at 0x57426c
Capabilities:
Encrypt data using rc4 ksa
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff0a0
push ebx
push esi
push edi
lea ebx, [ebp - 0xe60]
mov edi, dword [ebp + 0x34]
mov eax, dword [ebp + 0x1c]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0x618]
mov ecx, 0x109
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [ebp + 0x10]
push esi
push edi
mov esi, eax
mov edi, ebx
mov ecx, 0x109
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp + 0x28], 0
je 0x5742c7
mov eax, dword [ebp + 0x28]
push esi
push edi
mov esi, eax
lea edi, [ebp - 0xa3c]
mov ecx, 0x109
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x5742dd
push 0x424
push 0
lea eax, [ebp - 0xa3c]
push eax
call fcn.0045ea68
add esp, 0xc
cmp byte [ebx + 7], 0
je 0x5742f2
cmp dword [ebp + 0x20], 0
jne 0x5742f6
cmp byte [ebp - 0x611], 0
jne 0x5742f6
xor edx, edx
jmp 0x5742fb
mov edx, 1
mov dword [ebp - 0xc], edx
cmp byte [ebx + 7], 0
je 0x574313
cmp dword [ebp + 0x20], 0
je 0x574313
cmp byte [ebp - 0x611], 0
je 0x574317
xor ecx, ecx
jmp 0x57431c
mov ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0xc], 1
je 0x574331
cmp byte [ebx + 7], 0
je 0x574331
cmp dword [ebp + 0x4c], 1
jne 0x574336
xor eax, eax
mov dword [ebp + 0x3c], eax
cmp dword [ebp - 0xc], 0
jne 0x574342
cmp dword [ebp + 0x38], 0
je 0x574347
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 0x574364
cmp dword [ebp - 8], 0
jne 0x57436c
or eax, 0xffffffff
jmp 0x57682d
mov edx, dword [ebp + 0x10]
cmp word [edx], 8
jne 0x5743ea
cmp dword [ebp + 0x48], 0
jne 0x5743ea
cmp dword [ebp + 0x50], 0
jne 0x5743ea
mov ecx, dword [ebp + 0x1c]
cmp word [ecx], 8
je 0x574392
or eax, 0xffffffff
jmp 0x57682d
mov edx, dword [ebp + 8]
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x18], ecx
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp + 0xc]
sub edx, dword [ebp - 4]
mov dword [ebp - 0x20], edx
pushf
cld
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x18]
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 0x5743cf
mov eax, edx
inc esi
inc edi
dec ecx
jne 0x5743c4
add edi, dword [ebp - 0x20]
add esi, dword [ebp - 0x1c]
dec ebx
jne 0x5743c1
mov dword [ebp - 0x24], eax
popf
mov eax, dword [ebp - 0x24]
jmp 0x57682d
cmp dword [ebp + 0x3c], 0
jne 0x574728
cmp dword [ebp - 0x10], 0
jne 0x574728
cmp dword [ebp + 0x48], 0
jne 0x574728
cmp dword [ebp + 0x4c], 0
jne 0x574728
mov dx, word [ebx]
cmp dx, word [ebp - 0x618]
jne 0x574728
mov ecx, dword [ebx + 0xc]
cmp ecx, dword [ebp - 0x60c]
jne 0x574728
mov eax, dword [ebx + 0x10]
cmp eax, dword [ebp - 0x608]
jne 0x574728
mov edx, dword [ebx + 0x14]
cmp edx, dword [ebp - 0x604]
jne 0x574728
mov ecx, dword [ebx + 0x18]
cmp ecx, dword [ebp - 0x600]
jne 0x574728
movzx eax, word [ebx + 2]
imul dword [ebp - 4]
mov dword [ebp - 0x40], eax
cmp dword [ebp + 0x38], 0
jne 0x574659
movzx ecx, word [ebx + 2]
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 - 0x28], edx
movzx edx, word [ebp - 0x616]
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 - 0x2c], eax
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp + 0x18]
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0x30], edx
cmp dword [ebp + 0x50], 1
jne 0x574584
movzx ecx, word [ebx]
mov dword [ebp - 0x44], ecx
pushaw
pushf
cld
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp + 0x40]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x44], 8
je 0x574562
cmp dword [ebp - 0x44], 0x10
je 0x574540
cmp dword [ebp - 0x44], 0x18
je 0x57450b
mov ecx, dword [ebp - 4]
mov eax, dword [esi]
cmp eax, ebx
je 0x5744f7
mov dword [edi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x5744ef
add edi, dword [ebp - 0x34]
add esi, dword [ebp - 0x30]
dec edx
jne 0x5744ec
jmp 0x57457b
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 0x57452c
mov word [edi], ax
shr eax, 0x10
mov byte [edi + 2], al
add esi, 3
add edi, 3
dec ecx
jne 0x574514
add edi, dword [ebp - 0x34]
add esi, dword [ebp - 0x30]
dec edx
jne 0x57450b
jmp 0x57457b
mov ecx, dword [ebp - 4]
mov ax, word [esi]
cmp ax, bx
je 0x57454e
mov word [edi], ax
add esi, 2
add edi, 2
dec ecx
jne 0x574543
add edi, dword [ebp - 0x34]
add esi, dword [ebp - 0x30]
dec edx
jne 0x574540
jmp 0x57457b
mov ecx, dword [ebp - 4]
mov al, byte [esi]
cmp al, bl
je 0x57456d
mov byte [edi], al
inc esi
inc edi
dec ecx
jne 0x574565
add edi, dword [ebp - 0x34]
add esi, dword [ebp - 0x30]
dec edx
jne 0x574562
popf
popaw
jmp 0x57471c
mov eax, dword [ebp - 0x40]
test eax, eax
jns 0x57458e
add eax, 3
sar eax, 2
mov dword [ebp - 0x38], eax
mov edx, dword [ebp - 0x38]
shl edx, 2
mov eax, dword [ebp - 0x40]
sub eax, edx
movzx edx, word [ebx + 2]
mov ecx, edx
cdq
idiv ecx
mov dword [ebp - 0x3c], eax
movzx eax, word [ebx]
mov dword [ebp - 0x44], eax
pushaw
pushf
cld
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x44], 8
je 0x57462f
cmp dword [ebp - 0x44], 0x10
je 0x57460b
cmp dword [ebp - 0x44], 0x18
je 0x5745e5
mov ecx, dword [ebp - 0x38]
rep movsd dword es:[edi], dword [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x5745d7
jmp 0x574650
mov ecx, dword [ebp - 0x38]
test ecx, 0xffffffff
je 0x5745f2
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
test ecx, 0xffffffff
je 0x574602
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
loop 0x5745fd
add edi, eax
add esi, ebx
dec edx
jne 0x5745e5
jmp 0x574650
mov ecx, dword [ebp - 0x38]
test ecx, 0xffffffff
je 0x574618
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
test ecx, 0xffffffff
je 0x574626
rep movsw word es:[edi], word [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x57460b
jmp 0x574650
mov ecx, dword [ebp - 0x38]
test ecx, 0xffffffff
je 0x57463c
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp - 0x3c]
test ecx, 0xffffffff
je 0x574649
rep movsb byte es:[edi], byte [esi]
add edi, eax
add esi, ebx
dec edx
jne 0x57462f
popf
popaw
jmp 0x57471c
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 4]
imul dword [ebp + 0xc]
movzx edx, word [ebx + 2]
imul edx, dword [ebp + 0x2c]
add eax, edx
dec ecx
movzx edx, word [ebx + 2]
imul ecx, edx
add eax, ecx
add eax, dword [ebp + 8]
mov dword [ebp - 0x28], eax
movzx ecx, word [ebp - 0x616]
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 - 0x2c], eax
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
movzx eax, word [ebx]
mov dword [ebp - 0x44], eax
pushaw
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x30]
mov edx, dword [ebp - 8]
cmp dword [ebp - 0x44], 8
je 0x57470a
cmp dword [ebp - 0x44], 0x10
je 0x5746f7
cmp dword [ebp - 0x44], 0x18
je 0x5746e3
mov ecx, dword [ebp - 4]
movsd dword es:[edi], dword [esi]
sub edi, 8
loop 0x5746d4
add edi, eax
add esi, ebx
dec edx
jne 0x5746d1
jmp 0x57471a
mov ecx, dword [ebp - 4]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
sub edi, 6
loop 0x5746e6
add edi, eax
add esi, ebx
dec edx
jne 0x5746e3
jmp 0x57471a
mov ecx, dword [ebp - 4]
movsw word es:[edi], word [esi]
sub edi, 4
loop 0x5746fa
add edi, eax
add esi, ebx
dec edx
jne 0x5746f7
jmp 0x57471a
mov ecx, dword [ebp - 4]
movsb byte es:[edi], byte [esi]
sub edi, 2
loop 0x57470d
add edi, eax
add esi, ebx
dec edx
jne 0x57470a
popaw
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x50], 1
je 0x575a7a
cmp byte [ebx + 7], 0
je 0x574ae3
cmp dword [ebp + 0x3c], 1
jne 0x574ae3
cmp dword [ebp + 0x48], 0
jne 0x574ae3
cmp dword [ebp + 0x4c], 0
jne 0x574ae3
mov edx, dword [ebx + 0xc]
cmp edx, dword [ebp - 0x60c]
jne 0x574ae3
mov ecx, dword [ebx + 0x10]
cmp ecx, dword [ebp - 0x608]
jne 0x574ae3
mov eax, dword [ebx + 0x14]
cmp eax, dword [ebp - 0x604]
jne 0x574ae3
mov dx, word [ebx]
cmp dx, word [ebp - 0x618]
jne 0x574ae3
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
push ebx
call fcn.004762dc
add esp, 0x14
mov dword [ebp - 0x48], eax
mov ecx, dword [ebx + 0xc]
or ecx, dword [ebx + 0x10]
or ecx, dword [ebx + 0x14]
not ecx
mov dword [ebp - 0x4c], ecx
cmp dword [ebp + 0x38], 1
jne 0x574817
movzx eax, word [ebx + 2]
imul dword [ebp - 4]
add eax, dword [ebp + 0xc]
mov dword [ebp - 0x50], eax
movzx edx, word [ebx + 2]
neg edx
mov dword [ebp - 0x58], edx
mov eax, dword [ebp + 0x30]
mov ecx, dword [ebp - 4]
imul dword [ebp + 0xc]
movzx edx, word [ebx + 2]
imul edx, dword [ebp + 0x2c]
add eax, edx
dec ecx
movzx edx, word [ebx + 2]
imul ecx, edx
add eax, ecx
add eax, dword [ebp + 8]
jmp 0x574840
movzx eax, word [ebx + 2]
imul dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, eax
mov dword [ebp - 0x50], ecx
movzx eax, word [ebx + 2]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 0x30]
imul dword [ebp + 0xc]
movzx edx, word [ebx + 2]
imul edx, dword [ebp + 0x2c]
add eax, edx
add eax, dword [ebp + 8]
movzx ecx, word [ebp - 0x616]
mov edx, dword [edi]
mov esi, dword [ebp + 0x18]
imul edx, ecx
mov ecx, dword [edi + 4]
imul ecx, dword [ebp + 0x18]
add edx, ecx
movzx ecx, word [ebp - 0x616]
imul ecx, dword [ebp - 4]
add edx, dword [ebp + 0x14]
sub esi, ecx
mov dword [ebp - 0x54], esi
mov cx, word [ebx]
sub cx, 8
je 0x574897
sub cx, 8
je 0x57490a
sub cx, 8
je 0x574992
sub cx, 8
je 0x574a2e
jmp 0x574adc
mov cl, byte [ebp - 0x48]
mov byte [ebp - 0x5a], cl
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 8]
jge 0x574adc
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0x64]
cmp ecx, dword [ebp - 4]
jge 0x5748f4
mov cl, byte [edx]
mov byte [ebp - 0x59], cl
mov cl, byte [ebp - 0x5a]
cmp cl, byte [ebp - 0x59]
jne 0x5748d2
mov cl, byte [ebx + 0x18]
not cl
and byte [ebp - 0x59], cl
jmp 0x5748d8
mov cl, byte [ebx + 0x18]
or byte [ebp - 0x59], cl
mov cl, byte [ebp - 0x59]
mov byte [eax], cl
inc dword [ebp - 0x64]
movzx ecx, word [ebp - 0x616]
add edx, ecx
mov ecx, dword [ebp - 0x64]
add eax, dword [ebp - 0x58]
cmp ecx, dword [ebp - 4]
jl 0x5748bb
inc dword [ebp - 0x60]
add eax, dword [ebp - 0x58]
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 8]
jl 0x5748ae
jmp 0x574adc
mov cx, word [ebp - 0x48]
mov word [ebp - 0x68], cx
mov cx, word [ebp - 0x4c]
mov word [ebp - 0x6a], cx
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov ecx, dword [ebp - 0x70]
cmp ecx, dword [ebp - 8]
jge 0x574adc
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov ecx, dword [ebp - 0x74]
cmp ecx, dword [ebp - 4]
jge 0x57497c
mov cx, word [edx]
mov word [ebp - 0x66], cx
mov cx, word [ebp - 0x68]
cmp cx, word [ebp - 0x66]
jne 0x574956
mov cx, word [ebx + 0x18]
not cx
and word [ebp - 0x66], cx
jmp 0x57495e
mov cx, word [ebx + 0x18]
or word [ebp - 0x66], cx
mov cx, word [ebp - 0x66]
mov word [eax], cx
inc dword [ebp - 0x74]
movzx ecx, word [ebp - 0x616]
add edx, ecx
mov ecx, dword [ebp - 0x74]
add eax, dword [ebp - 0x58]
cmp ecx, dword [ebp - 4]
jl 0x574938
inc dword [ebp - 0x70]
add eax, dword [ebp - 0x50]
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x70]
cmp ecx, dword [ebp - 8]
jl 0x57492b
jmp 0x574adc
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x7c], ecx
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 8]
jge 0x574adc
xor ecx, ecx
mov dword [ebp - 0x84], ecx
mov ecx, dword [ebp - 0x84]
cmp ecx, dword [ebp - 4]
jge 0x574a18
movzx ecx, word [edx]
movzx esi, byte [edx + 2]
shl esi, 0x10
add ecx, esi
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0x7c]
cmp ecx, dword [ebp - 0x78]
jne 0x5749dd
mov ecx, dword [ebx + 0x18]
not ecx
and dword [ebp - 0x78], ecx
jmp 0x5749e3
mov ecx, dword [ebx + 0x18]
or dword [ebp - 0x78], ecx
mov cx, word [ebp - 0x78]
and cx, 0xffff
mov word [eax], cx
mov ecx, dword [ebp - 0x78]
shr ecx, 0x10
and cl, 0xff
mov byte [eax + 2], cl
inc dword [ebp - 0x84]
movzx ecx, word [ebp - 0x616]
add edx, ecx
mov ecx, dword [ebp - 0x84]
add eax, dword [ebp - 0x58]
cmp ecx, dword [ebp - 4]
jl 0x5749bc
inc dword [ebp - 0x80]
add eax, dword [ebp - 0x50]
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x80]
cmp ecx, dword [ebp - 8]
jl 0x5749a9
jmp 0x574adc
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x8c], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x90], ecx
xor ecx, ecx
mov dword [ebp - 0x94], ecx
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [ebp - 8]
jge 0x574adc
xor ecx, ecx
mov dword [ebp - 0x98], ecx
mov ecx, dword [ebp - 0x98]
cmp ecx, dword [ebp - 4]
jge 0x574ac1
mov ecx, dword [edx]
or ecx, dword [ebp - 0x90]
mov dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x8c]
cmp ecx, dword [ebp - 0x88]
jne 0x574a93
mov ecx, dword [ebx + 0x18]
not ecx
and dword [ebp - 0x88], ecx
jmp 0x574a9c
mov ecx, dword [ebx + 0x18]
or dword [ebp - 0x88], ecx
mov ecx, dword [ebp - 0x88]
mov dword [eax], ecx
inc dword [ebp - 0x98]
movzx ecx, word [ebp - 0x616]
add edx, ecx
mov ecx, dword [ebp - 0x98]
add eax, dword [ebp - 0x58]
cmp ecx, dword [ebp - 4]
jl 0x574a6a
inc dword [ebp - 0x94]
add eax, dword [ebp - 0x50]
add edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x94]
cmp ecx, dword [ebp - 8]
jl 0x574a57
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x44], 0
jne 0x575a7a
cmp dword [ebp + 0x48], 0
jne 0x575a7a
cmp dword [ebp + 0x4c], 0
jne 0x575a7a
cmp dword [ebp + 0x38], 0
jne 0x575a7a
cmp dword [ebp + 0x20], 0
jne 0x575a7a
cmp dword [ebp + 0x3c], 0
jne 0x574d13
cmp word [ebp - 0x618], 8
jne 0x574d13
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [ebp - 0xa4], eax
movzx edx, word [ebp - 0x616]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0x18]
sub ecx, edx
mov dword [ebp - 0xa8], ecx
mov eax, dword [ebp + 0x30]
imul dword [ebp + 0xc]
movzx edx, word [ebx + 2]
imul edx, dword [ebp + 0x2c]
add eax, edx
add eax, dword [ebp + 8]
mov dword [ebp - 0x9c], eax
movzx eax, word [ebp - 0x616]
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 - 0xa0], ecx
cmp word [ebx], 0x10
jne 0x574c0b
cmp dword [ebx + 0x18], 0
jne 0x574c0b
cmp dword [ebx + 0xc], 0xf800
jne 0x574c0b
cmp dword [ebx + 0x10], 0x7e0
jne 0x574c0b
cmp dword [ebx + 0x14], 0x1f
jne 0x574c0b
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x5f8]
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 0x574bc0
add edi, dword [ebp - 0xa4]
add esi, dword [ebp - 0xa8]
dec dword [ebp - 8]
jne 0x574bbd
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x10
jne 0x574c8f
cmp dword [ebx + 0x18], 0
jne 0x574c8f
cmp dword [ebx + 0xc], 0x7c00
jne 0x574c8f
cmp dword [ebx + 0x10], 0x3e0
jne 0x574c8f
cmp dword [ebx + 0x14], 0x1f
jne 0x574c8f
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x5f8]
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 0x574c3e
add edi, dword [ebp - 0xa4]
add esi, dword [ebp - 0xa8]
dec dword [ebp - 8]
jne 0x574c3b
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x20
jne 0x574e8a
cmp dword [ebx + 0x18], 0
jne 0x574e8a
cmp dword [ebx + 0xc], 0xff0000
jne 0x574e8a
cmp dword [ebx + 0x10], 0xff00
jne 0x574e8a
cmp dword [ebx + 0x14], 0xff
jne 0x574e8a
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0xa0]
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 - 0x5f8]
or eax, 0xff000000
mov dword [edi], eax
inc esi
add edi, 4
dec ecx
jne 0x574cdf
add edi, dword [ebp - 0xa4]
add esi, dword [ebp - 0xa8]
dec ebx
jne 0x574cdc
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 1
jne 0x574e8a
cmp word [ebp - 0x618], 8
jne 0x574e8a
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xb4], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xb8], edx
movzx eax, word [ebx + 2]
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 - 0xac], ecx
movzx ecx, word [ebp - 0x616]
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 - 0xb0], edx
cmp word [ebx], 0x10
jne 0x574e19
cmp dword [ebx + 0x18], 0x8000
jne 0x574e19
cmp dword [ebx + 0xc], 0x7c00
jne 0x574e19
cmp dword [ebx + 0x10], 0x3e0
jne 0x574e19
cmp dword [ebx + 0x14], 0x1f
jne 0x574e19
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0xb0]
mov ecx, dword [ebp - 4]
movzx eax, byte [esi]
mov eax, dword [ebp + eax*4 - 0x5f8]
cmp eax, dword [ebp + 0x40]
je 0x574dd8
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 0x574dc4
add edi, dword [ebp - 0xb4]
add esi, dword [ebp - 0xb8]
dec dword [ebp - 8]
jne 0x574dc1
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x20
jne 0x574e8a
cmp dword [ebx + 0x18], 0xff000000
jne 0x574e8a
cmp dword [ebx + 0xc], 0xff0000
jne 0x574e8a
cmp dword [ebx + 0x10], 0xff00
jne 0x574e8a
cmp dword [ebx + 0x14], 0xff
jne 0x574e8a
mov edi, dword [ebp - 0xac]
mov esi, dword [ebp - 0xb0]
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 - 0x5f8]
cmp eax, edx
je 0x574e6b
or eax, 0xff000000
mov dword [edi], eax
inc esi
add edi, 4
dec ecx
jne 0x574e58
add edi, dword [ebp - 0xb4]
add esi, dword [ebp - 0xb8]
dec ebx
jne 0x574e55
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 0
jne 0x5750b0
cmp word [ebp - 0x618], 0x18
jne 0x5750b0
cmp dword [ebp - 0x60c], 0xff0000
jne 0x5750b0
cmp dword [ebp - 0x608], 0xff00
jne 0x5750b0
cmp dword [ebp - 0x604], 0xff
jne 0x5750b0
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xc4], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xc8], edx
movzx eax, word [ebx + 2]
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 - 0xbc], ecx
movzx ecx, word [ebp - 0x616]
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 - 0xc0], edx
cmp word [ebx], 0x10
jne 0x574fb3
cmp dword [ebx + 0x18], 0
jne 0x574fb3
cmp dword [ebx + 0xc], 0xf800
jne 0x574fb3
cmp dword [ebx + 0x10], 0x7e0
jne 0x574fb3
cmp dword [ebx + 0x14], 0x1f
jne 0x574fb3
mov edi, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xc0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0xc4]
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 0x574f6c
add edi, dword [ebp - 0xc4]
add esi, dword [ebp - 0xc8]
dec dword [ebp - 8]
jne 0x574f6a
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x10
jne 0x57503e
cmp dword [ebx + 0x18], 0
jne 0x57503e
cmp dword [ebx + 0xc], 0x7c00
jne 0x57503e
cmp dword [ebx + 0x10], 0x3e0
jne 0x57503e
cmp dword [ebx + 0x14], 0x1f
jne 0x57503e
mov edi, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xc0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 0xc4]
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 0x574ff2
add edi, dword [ebp - 0xc4]
add esi, dword [ebp - 0xc8]
dec dword [ebp - 8]
jne 0x574ff0
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x20
jne 0x575a7a
cmp dword [ebx + 0xc], 0xff0000
jne 0x575a7a
cmp dword [ebx + 0x10], 0xff00
jne 0x575a7a
cmp dword [ebx + 0x14], 0xff
jne 0x575a7a
push ebp
mov edi, dword [ebp - 0xbc]
mov esi, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xc8]
push eax
mov ebx, dword [ebp - 4]
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0xc4]
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 0x575092
add edi, edx
add esi, ebp
dec eax
jne 0x575090
pop ebp
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 1
jne 0x5752b2
cmp word [ebp - 0x618], 0x18
jne 0x5752b2
cmp dword [ebp - 0x60c], 0xff0000
jne 0x5752b2
cmp dword [ebp - 0x608], 0xff00
jne 0x5752b2
cmp dword [ebp - 0x604], 0xff
jne 0x5752b2
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xd4], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xd8], edx
movzx eax, word [ebx + 2]
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 - 0xcc], ecx
movzx ecx, word [ebp - 0x616]
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 - 0xd0], edx
cmp word [ebx], 0x10
jne 0x575225
cmp dword [ebx + 0x18], 0x8000
jne 0x575225
cmp dword [ebx + 0xc], 0x7c00
jne 0x575225
cmp dword [ebx + 0x10], 0x3e0
jne 0x575225
cmp dword [ebx + 0x14], 0x1f
jne 0x575225
xor ecx, ecx
xor eax, eax
mov cl, byte [ebp + 0x41]
mov al, byte [ebp + 0x42]
sar ecx, 3
xor edx, edx
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 - 0xdc], edx
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
mov ebx, dword [ebp - 0xdc]
mov ecx, dword [ebp - 4]
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 edx, eax
cmp edx, ebx
je 0x5751fc
or edx, 0x8000
mov word [edi], dx
add edi, 2
add esi, 3
dec ecx
jne 0x5751cf
add edi, dword [ebp - 0xd4]
add esi, dword [ebp - 0xd8]
dec dword [ebp - 8]
jne 0x5751cc
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x20
jne 0x575a7a
cmp dword [ebx + 0x18], 0xff000000
jne 0x575a7a
cmp dword [ebx + 0xc], 0xff0000
jne 0x575a7a
cmp dword [ebx + 0x10], 0xff00
jne 0x575a7a
cmp dword [ebx + 0x14], 0xff
jne 0x575a7a
mov edi, dword [ebp - 0xcc]
mov esi, dword [ebp - 0xd0]
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 0x57528c
or eax, 0xff000000
mov dword [edi], eax
add esi, 3
add edi, 4
dec ecx
jne 0x575278
add edi, dword [ebp - 0xd4]
add esi, dword [ebp - 0xd8]
dec ebx
jne 0x575275
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 0
jne 0x575404
cmp dword [ebp - 0xc], 0
jne 0x575404
cmp word [ebp - 0x618], 0x20
jne 0x575404
cmp dword [ebp - 0x600], 0
jne 0x575404
cmp dword [ebp - 0x60c], 0xff0000
jne 0x575404
cmp dword [ebp - 0x608], 0xff00
jne 0x575404
cmp dword [ebp - 0x604], 0xff
jne 0x575404
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xe8], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xec], edx
movzx eax, word [ebx + 2]
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 - 0xe0], ecx
movzx ecx, word [ebp - 0x616]
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 - 0xe4], edx
cmp word [ebx], 0x10
jne 0x575a7a
cmp dword [ebx + 0x18], 0
jne 0x575a7a
cmp dword [ebx + 0xc], 0xf800
jne 0x575a7a
cmp dword [ebx + 0x10], 0x7e0
jne 0x575a7a
cmp dword [ebx + 0x14], 0x1f
jne 0x575a7a
mov edi, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xe4]
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 0x5753b7
add edi, dword [ebp - 0xe8]
add esi, dword [ebp - 0xec]
dec dword [ebp - 8]
jne 0x5753b4
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 1
jne 0x575572
cmp word [ebp - 0x618], 0x10
jne 0x575572
cmp dword [ebp - 0x600], 0
jne 0x575572
cmp dword [ebp - 0x60c], 0xf800
jne 0x575572
cmp dword [ebp - 0x608], 0x7e0
jne 0x575572
cmp dword [ebp - 0x604], 0x1f
jne 0x575572
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0xf8], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0xfc], edx
movzx eax, word [ebx + 2]
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 - 0xf0], ecx
movzx ecx, word [ebp - 0x616]
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 - 0xf4], edx
cmp word [ebx], 0x10
jne 0x575a7a
cmp dword [ebx + 0x18], 0x8000
jne 0x575a7a
cmp dword [ebx + 0xc], 0x7c00
jne 0x575a7a
cmp dword [ebx + 0x10], 0x3e0
jne 0x575a7a
cmp dword [ebx + 0x14], 0x1f
jne 0x575a7a
xor ecx, ecx
xor eax, eax
mov cl, byte [ebp + 0x41]
mov al, byte [ebp + 0x42]
sar ecx, 3
xor edx, edx
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 - 0x100], edx
mov edi, dword [ebp - 0xf0]
mov esi, dword [ebp - 0xf4]
mov ebx, dword [ebp - 0x100]
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 0x575549
or eax, 0x8000
mov word [edi], ax
add edi, 2
add esi, 2
dec ecx
jne 0x57552d
add edi, dword [ebp - 0xf8]
add esi, dword [ebp - 0xfc]
dec dword [ebp - 8]
jne 0x57552a
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 0
jne 0x575878
cmp dword [ebp - 0xc], 0
jne 0x575878
cmp word [ebp - 0x618], 0x10
jne 0x575878
cmp dword [ebp - 0x600], 0
jne 0x575878
cmp dword [ebp - 0x60c], 0xf800
jne 0x575878
cmp dword [ebp - 0x608], 0x7e0
jne 0x575878
cmp dword [ebp - 0x604], 0x1f
jne 0x575878
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x10c], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x110], edx
movzx eax, word [ebx + 2]
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 - 0x104], ecx
movzx ecx, word [ebp - 0x616]
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 - 0x108], edx
cmp word [ebx], 0x18
jne 0x5756b0
cmp dword [ebx + 0x18], 0
jne 0x5756b0
cmp dword [ebx + 0xc], 0xff0000
jne 0x5756b0
cmp dword [ebx + 0x10], 0xff00
jne 0x5756b0
cmp dword [ebx + 0x14], 0xff
jne 0x5756b0
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0x108]
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 0x575663
add edi, dword [ebp - 0x10c]
add esi, dword [ebp - 0x110]
dec dword [ebp - 8]
jne 0x575660
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x20
jne 0x57572c
cmp dword [ebx + 0x18], 0
jne 0x57572c
cmp dword [ebx + 0xc], 0xff0000
jne 0x57572c
cmp dword [ebx + 0x10], 0xff00
jne 0x57572c
cmp dword [ebx + 0x14], 0xff
jne 0x57572c
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0x108]
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 0x5756e6
add edi, dword [ebp - 0x10c]
add esi, dword [ebp - 0x110]
dec dword [ebp - 8]
jne 0x5756e3
xor eax, eax
jmp 0x57682d
cmp word [ebx], 0x10
jne 0x575a7a
cmp dword [ebx + 0x18], 0
jne 0x575a7a
cmp dword [ebx + 0xc], 0x7c00
jne 0x575a7a
cmp dword [ebx + 0x10], 0x3e0
jne 0x575a7a
cmp dword [ebx + 0x14], 0x1f
jne 0x575a7a
call fcn.0045f3dc
dec eax
jne 0x575804
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 - 0x104]
mov esi, dword [ebp - 0x108]
mov ecx, dword [ebp - 4]
shr ecx, 2
je 0x5757c7
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 0x5757a8
mov ecx, dword [ebp - 4]
and ecx, 3
je 0x5757ef
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 0x5757cf
add edi, dword [ebp - 0x10c]
add esi, dword [ebp - 0x110]
dec dword [ebp - 8]
jne 0x5757a0
emms
jmp 0x57586c
mov edi, dword [ebp - 0x104]
mov esi, dword [ebp - 0x108]
mov ecx, dword [ebp - 4]
shr ecx, 1
je 0x575835
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 0x575817
test dword [ebp - 4], 1
je 0x57585b
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 - 0x10c]
add esi, dword [ebp - 0x110]
dec dword [ebp - 8]
jne 0x575810
xor eax, eax
jmp 0x57682d
cmp dword [ebp + 0x3c], 0
jne 0x575a7a
cmp dword [ebp - 0xc], 0
jne 0x575a7a
cmp word [ebp - 0x618], 0x10
jne 0x575a7a
cmp dword [ebp - 0x600], 0
jne 0x575a7a
cmp dword [ebp - 0x60c], 0x7c00
jne 0x575a7a
cmp dword [ebp - 0x608], 0x3e0
jne 0x575a7a
cmp dword [ebp - 0x604], 0x1f
jne 0x575a7a
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x11c], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x120], edx
movzx eax, word [ebx + 2]
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 - 0x114], ecx
movzx ecx, word [ebp - 0x616]
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 - 0x118], edx
cmp word [ebx], 0x10
jne 0x575a7a
cmp dword [ebx + 0x18], 0
jne 0x575a7a
cmp dword [ebx + 0xc], 0xf800
jne 0x575a7a
cmp dword [ebx + 0x10], 0x7e0
jne 0x575a7a
cmp dword [ebx + 0x14], 0x1f
jne 0x575a7a
call fcn.0045f3dc
dec eax
jne 0x575a0b
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 - 0x114]
mov esi, dword [ebp - 0x118]
mov ecx, dword [ebp - 4]
shr ecx, 2
je 0x5759ce
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 0x5759af
mov ecx, dword [ebp - 4]
and ecx, 3
je 0x5759f6
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 0x5759d6
add edi, dword [ebp - 0x11c]
add esi, dword [ebp - 0x120]
dec dword [ebp - 8]
jne 0x5759a7
emms
jmp 0x575a73
mov edi, dword [ebp - 0x114]
mov esi, dword [ebp - 0x118]
mov ecx, dword [ebp - 4]
shr ecx, 1
je 0x575a3c
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 0x575a1e
test dword [ebp - 4], 1
je 0x575a62
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 - 0x11c]
add esi, dword [ebp - 0x120]
dec dword [ebp - 8]
jne 0x575a17
xor eax, eax
jmp 0x57682d
mov byte [ebp - 0x165], 0
mov byte [ebp - 0x166], 0
mov byte [ebp - 0x167], 0
mov byte [ebp - 0x168], 0
mov dl, byte [ebx + 4]
cmp dl, byte [ebp - 0x614]
jne 0x575abb
mov cl, byte [ebp - 0x613]
cmp cl, byte [ebx + 5]
jne 0x575abb
mov al, byte [ebx + 4]
cmp al, byte [ebp - 0x614]
jne 0x575abb
xor edx, edx
jmp 0x575ac0
mov edx, 1
mov byte [ebp - 0x161], dl
cmp dword [ebp - 0x10], 0
je 0x575ade
mov cl, byte [ebp - 0xa38]
cmp cl, byte [ebx + 7]
je 0x575ade
mov byte [ebp - 0x161], 1
lea eax, [ebp - 0x5f8]
lea edx, [ebp - 0xa1c]
mov dword [ebp - 0x18c], eax
mov dword [ebp - 0x190], edx
mov cx, word [ebp - 0x618]
sub cx, 8
je 0x575b32
sub cx, 8
je 0x575b17
sub cx, 8
je 0x575b20
sub cx, 8
je 0x575b29
jmp 0x575b39
mov byte [ebp - 0x163], 0
jmp 0x575b39
mov byte [ebp - 0x163], 1
jmp 0x575b39
mov byte [ebp - 0x163], 2
jmp 0x575b39
mov byte [ebp - 0x163], 3
cmp dword [ebp + 0x3c], 0
jne 0x575b7f
mov ax, word [ebp - 0x618]
sub ax, 8
je 0x575b78
sub ax, 8
je 0x575b60
sub ax, 8
je 0x575b69
sub ax, 8
je 0x575b72
jmp 0x575b7f
and dword [ebp + 0x40], 0xffff
jmp 0x575b7f
and dword [ebp + 0x40], 0xffffff
jmp 0x575b7f
and dword [ebp + 0x40], 0xffffffff
jmp 0x575b7f
and dword [ebp + 0x40], 0xff
mov dx, word [ebx]
sub dx, 8
je 0x575bb7
sub dx, 8
je 0x575b9c
sub dx, 8
je 0x575ba5
sub dx, 8
je 0x575bae
jmp 0x575bbe
mov byte [ebp - 0x162], 0
jmp 0x575bbe
mov byte [ebp - 0x162], 1
jmp 0x575bbe
mov byte [ebp - 0x162], 2
jmp 0x575bbe
mov byte [ebp - 0x162], 3
mov cx, word [ebp - 0xa3c]
sub cx, 8
je 0x575bfa
sub cx, 8
je 0x575bdf
sub cx, 8
je 0x575be8
sub cx, 8
je 0x575bf1
jmp 0x575c01
mov byte [ebp - 0x164], 0
jmp 0x575c01
mov byte [ebp - 0x164], 1
jmp 0x575c01
mov byte [ebp - 0x164], 2
jmp 0x575c01
mov byte [ebp - 0x164], 3
cmp byte [ebp - 0x161], 1
jne 0x575f46
mov al, byte [ebp - 0x614]
sub al, byte [ebx + 4]
mov byte [ebp - 0x165], al
mov dl, byte [ebp - 0x613]
sub dl, byte [ebx + 5]
mov byte [ebp - 0x166], dl
mov cl, byte [ebp - 0x612]
sub cl, byte [ebx + 6]
mov byte [ebp - 0x167], cl
cmp dword [ebp - 0x10], 0
je 0x575c49
mov al, byte [ebp - 0xa38]
jmp 0x575c4f
mov al, byte [ebp - 0x611]
sub al, byte [ebx + 7]
mov byte [ebp - 0x168], al
mov cl, byte [ebp - 0x165]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x194], edx
mov cl, byte [ebp - 0x166]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x198], eax
mov cl, byte [ebp - 0x167]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x19c], eax
mov cl, byte [ebp - 0x168]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1a0], eax
cmp dword [ebp + 0x44], 1
jne 0x575dbb
xor edx, edx
mov dword [ebp - 0x1a4], edx
lea eax, [ebp - 0xf60]
mov dword [ebp - 0x1f4], eax
lea edx, [ebp - 0xee0]
mov dword [ebp - 0x1f0], edx
lea ecx, [ebp - 0xf20]
mov dword [ebp - 0x1ec], ecx
lea eax, [ebp - 0xea0]
mov dword [ebp - 0x1e8], eax
mov dword [ebp - 0x1e4], 0x5f4698
mov edx, dword [ebp - 0x1e4]
mov cl, byte [ebp - 0x610]
mov eax, dword [edx]
imul dword [ebp - 0x194]
shr eax, 4
mov edx, dword [ebp - 0x1e8]
shl eax, cl
mov dword [edx], eax
mov eax, dword [ebp - 0x1e4]
mov cl, byte [ebp - 0x60f]
mov edx, dword [eax]
imul edx, dword [ebp - 0x198]
shr edx, 4
shl edx, cl
mov ecx, dword [ebp - 0x1ec]
mov dword [ecx], edx
mov eax, dword [ebp - 0x1e4]
mov cl, byte [ebp - 0x60e]
mov edx, dword [eax]
mov eax, dword [ebp - 0x1f0]
imul edx, dword [ebp - 0x19c]
shr edx, 4
shl edx, cl
mov dword [eax], edx
cmp dword [ebp - 0x10], 0
je 0x575d63
mov cl, byte [ebp - 0xa34]
jmp 0x575d69
mov cl, byte [ebp - 0x60d]
mov eax, dword [ebp - 0x1e4]
mov edx, dword [eax]
mov eax, dword [ebp - 0x1f4]
imul edx, dword [ebp - 0x1a0]
shr edx, 4
shl edx, cl
mov dword [eax], edx
inc dword [ebp - 0x1a4]
add dword [ebp - 0x1f4], 4
add dword [ebp - 0x1f0], 4
add dword [ebp - 0x1ec], 4
add dword [ebp - 0x1e8], 4
add dword [ebp - 0x1e4], 4
cmp dword [ebp - 0x1a4], 0x10
jl 0x575cf0
mov cl, byte [ebp - 0x610]
mov edx, dword [ebp - 0x194]
dec edx
shl edx, cl
mov dword [ebp - 0x124], edx
mov cl, byte [ebp - 0x60f]
mov eax, dword [ebp - 0x198]
dec eax
shl eax, cl
mov dword [ebp - 0x128], eax
mov cl, byte [ebp - 0x60e]
mov eax, dword [ebp - 0x19c]
dec eax
shl eax, cl
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x10], 0
je 0x575e08
mov cl, byte [ebp - 0xa34]
jmp 0x575e0e
mov cl, byte [ebp - 0x60d]
mov eax, dword [ebp - 0x1a0]
dec eax
shl eax, cl
mov dword [ebp - 0x130], eax
mov edx, dword [ebx + 0xc]
or edx, dword [ebx + 0x10]
or edx, dword [ebx + 0x14]
or edx, dword [ebx + 0x18]
not edx
mov dword [ebp - 0x140], edx
mov eax, dword [ebx + 0xc]
or eax, dword [ebx + 0x10]
or eax, dword [ebx + 0x14]
not eax
mov dword [ebp - 0x144], eax
mov cl, byte [ebp - 0x610]
mov edx, dword [ebp - 0x60c]
shr edx, cl
mov dword [ebp - 0x17c], edx
mov cl, byte [ebp - 0x60f]
mov eax, dword [ebp - 0x608]
shr eax, cl
mov dword [ebp - 0x180], eax
mov cl, byte [ebp - 0x60e]
mov eax, dword [ebp - 0x604]
shr eax, cl
mov dword [ebp - 0x184], eax
cmp dword [ebp - 0x10], 0
je 0x575e94
mov cl, byte [ebp - 0xa34]
mov eax, dword [ebp - 0xa30]
shr eax, cl
jmp 0x575ea2
mov cl, byte [ebp - 0x60d]
mov eax, dword [ebp - 0x600]
shr eax, cl
mov dword [ebp - 0x188], eax
xor eax, eax
xor ecx, ecx
mov al, byte [ebp - 0x614]
mov cl, byte [ebx + 4]
mov edx, 1
sub ecx, eax
xor eax, eax
shl edx, cl
dec edx
xor ecx, ecx
mov dword [ebp - 0x16c], edx
mov edx, 1
mov al, byte [ebp - 0x613]
mov cl, byte [ebx + 5]
sub ecx, eax
xor eax, eax
shl edx, cl
dec edx
xor ecx, ecx
mov dword [ebp - 0x170], edx
mov edx, 1
mov cl, byte [ebx + 6]
mov al, byte [ebp - 0x612]
sub ecx, eax
shl edx, cl
dec edx
mov dword [ebp - 0x174], edx
cmp dword [ebp - 0x10], 0
je 0x575f0d
mov al, byte [ebp - 0xa38]
jmp 0x575f13
mov al, byte [ebp - 0x611]
xor edx, edx
xor ecx, ecx
mov cl, byte [ebx + 7]
mov dl, al
sub ecx, edx
mov eax, 1
shl eax, cl
dec eax
xor edx, edx
mov dword [ebp - 0x178], eax
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x150], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x154], edx
cmp dword [ebp + 0x3c], 0
je 0x575fd7
mov eax, dword [ebp + 0x40]
shr eax, 0x10
and eax, 0xff
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp + 0x40]
shr ecx, 8
and ecx, 0xff
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp + 0x40]
and eax, 0xff
mov dword [ebp - 0x160], eax
push 0xff
mov edx, dword [ebp - 0x160]
push edx
mov ecx, dword [ebp - 0x15c]
push ecx
mov eax, dword [ebp - 0x158]
push eax
push ebx
call fcn.004762dc
add esp, 0x14
mov dword [ebp - 0x1a8], eax
mov edx, dword [ebp - 0x1a8]
and edx, dword [ebx + 0xc]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x1a8]
and ecx, dword [ebx + 0x10]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x1a8]
and eax, dword [ebx + 0x14]
mov dword [ebp - 0x160], eax
cmp dword [ebp + 0x38], 0
jne 0x57601d
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
sub ecx, edx
mov dword [ebp - 0x138], ecx
movzx eax, word [ebp - 0x616]
imul dword [ebp - 4]
mov edx, dword [ebp + 0x18]
sub edx, eax
mov dword [ebp - 0x134], edx
movzx ecx, word [ebp - 0xa3a]
imul ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x24]
sub eax, ecx
mov dword [ebp - 0x13c], eax
jmp 0x57605a
movzx edx, word [ebx + 2]
imul edx, dword [ebp - 4]
add edx, dword [ebp + 0xc]
mov dword [ebp - 0x138], edx
movzx ecx, word [ebp - 0x616]
imul ecx, dword [ebp - 4]
mov eax, dword [ebp + 0x18]
sub eax, ecx
mov dword [ebp - 0x134], eax
movzx edx, word [ebp - 0xa3a]
imul edx, dword [ebp - 4]
mov ecx, dword [ebp + 0x24]
sub ecx, edx
mov dword [ebp - 0x13c], ecx
mov eax, dword [ebx + 0x1c]
mov dword [ebp - 0x1bc], eax
cmp dword [ebp + 0x38], 1
jne 0x57609e
movzx ecx, word [ebx + 2]
mov edx, dword [ebp + 0x30]
mov eax, dword [ebp - 4]
imul edx, dword [ebp + 0xc]
imul ecx, dword [ebp + 0x2c]
add edx, ecx
dec eax
movzx ecx, word [ebx + 2]
imul eax, ecx
add edx, eax
add edx, dword [ebp + 8]
mov dword [ebp - 0x1ac], edx
movzx edx, word [ebx + 2]
neg edx
mov dword [ebp - 0x1c8], edx
jmp 0x5760c1
mov eax, dword [ebp + 0x30]
imul dword [ebp + 0xc]
movzx edx, word [ebx + 2]
imul edx, dword [ebp + 0x2c]
add eax, edx
add eax, dword [ebp + 8]
mov dword [ebp - 0x1ac], eax
movzx ecx, word [ebx + 2]
mov dword [ebp - 0x1c8], ecx
movzx edx, word [ebp - 0x616]
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 - 0x1b0], eax
movzx edx, word [ebp - 0xa3a]
mov ecx, dword [edi + 4]
mov eax, dword [edi]
imul ecx, dword [ebp + 0x24]
imul edx
add eax, ecx
add eax, dword [ebp + 0x20]
mov dword [ebp - 0x1b4], eax
xor eax, eax
mov dword [ebp - 0x1c0], eax
mov edx, dword [ebp - 0x1c0]
cmp edx, dword [ebp - 8]
jge 0x57682b
xor ecx, ecx
mov dword [ebp - 0x1c4], ecx
mov eax, dword [ebp - 0x1c4]
cmp eax, dword [ebp - 4]
jge 0x5767f2
mov dl, byte [ebp - 0x163]
sub dl, 1
jb 0x576140
je 0x57614b
dec dl
je 0x576166
dec dl
je 0x576170
jmp 0x576183
mov ecx, dword [ebp - 0x1b0]
movzx esi, word [ecx]
jmp 0x576183
mov eax, dword [ebp - 0x1b0]
movzx esi, word [eax]
mov eax, dword [ebp - 0x1b0]
xor edx, edx
mov dl, byte [eax + 2]
shl edx, 0x10
or esi, edx
jmp 0x576183
mov ecx, dword [ebp - 0x1b0]
mov esi, dword [ecx]
jmp 0x576183
mov eax, dword [ebp - 0x1b0]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0x18c]
mov esi, dword [ecx + edx*4]
cmp dword [ebp + 0x50], 0
je 0x576192
cmp esi, dword [ebp + 0x40]
je 0x5767b7
cmp dword [ebp - 0x10], 1
jne 0x576209
mov al, byte [ebp - 0x164]
sub al, 1
jb 0x5761ae
je 0x5761bf
dec al
je 0x5761e0
dec al
je 0x5761f0
jmp 0x576209
mov edx, dword [ebp - 0x1b4]
movzx ecx, word [edx]
mov dword [ebp - 0x1b8], ecx
jmp 0x576209
mov eax, dword [ebp - 0x1b4]
mov ecx, dword [ebp - 0x1b4]
movzx edx, word [eax]
xor eax, eax
mov al, byte [ecx + 2]
shl eax, 0x10
or edx, eax
mov dword [ebp - 0x1b8], edx
jmp 0x576209
mov edx, dword [ebp - 0x1b4]
mov ecx, dword [edx]
mov dword [ebp - 0x1b8], ecx
jmp 0x576209
mov eax, dword [ebp - 0x1b4]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0x190]
mov eax, dword [ecx + edx*4]
mov dword [ebp - 0x1b8], eax
mov cl, byte [ebp - 0x610]
mov edx, dword [ebp - 0x60c]
and edx, esi
shr edx, cl
mov dword [ebp - 0x1cc], edx
cmp byte [ebp - 0x165], 0
je 0x57626e
test byte [ebp - 0x165], 0x80
je 0x576262
mov eax, dword [ebp - 0x1cc]
xor ecx, ecx
imul dword [ebp - 0x16c]
xor edx, edx
mov cl, byte [ebp - 0x165]
div dword [ebp - 0x17c]
not ecx
mov edi, dword [ebp - 0x1cc]
inc ecx
shl edi, cl
add edi, eax
mov dword [ebp - 0x1cc], edi
jmp 0x57626e
mov cl, byte [ebp - 0x165]
shr dword [ebp - 0x1cc], cl
mov cl, byte [ebp - 0x60f]
mov eax, dword [ebp - 0x608]
and eax, esi
shr eax, cl
mov dword [ebp - 0x1d4], eax
cmp byte [ebp - 0x166], 0
je 0x5762d3
test byte [ebp - 0x166], 0x80
je 0x5762c7
mov eax, dword [ebp - 0x1d4]
xor ecx, ecx
imul dword [ebp - 0x170]
xor edx, edx
mov cl, byte [ebp - 0x166]
div dword [ebp - 0x180]
not ecx
mov edi, dword [ebp - 0x1d4]
inc ecx
shl edi, cl
add edi, eax
mov dword [ebp - 0x1d4], edi
jmp 0x5762d3
mov cl, byte [ebp - 0x166]
shr dword [ebp - 0x1d4], cl
mov cl, byte [ebp - 0x60e]
mov eax, dword [ebp - 0x604]
and eax, esi
shr eax, cl
mov dword [ebp - 0x1d0], eax
cmp byte [ebp - 0x167], 0
je 0x576338
test byte [ebp - 0x167], 0x80
je 0x57632c
mov eax, dword [ebp - 0x1d0]
xor ecx, ecx
imul dword [ebp - 0x174]
xor edx, edx
mov cl, byte [ebp - 0x167]
div dword [ebp - 0x184]
not ecx
mov edi, dword [ebp - 0x1d0]
inc ecx
shl edi, cl
add edi, eax
mov dword [ebp - 0x1d0], edi
jmp 0x576338
mov cl, byte [ebp - 0x167]
shr dword [ebp - 0x1d0], cl
cmp dword [ebp - 0x10], 1
jne 0x576399
mov cl, byte [ebp - 0xa34]
mov edi, dword [ebp - 0x1b8]
and edi, dword [ebp - 0xa30]
shr edi, cl
cmp byte [ebp - 0x168], 0
je 0x576407
test byte [ebp - 0x168], 0x80
je 0x57638f
xor ecx, ecx
mov cl, byte [ebp - 0x168]
not ecx
inc ecx
mov eax, edi
shl eax, cl
mov ecx, eax
mov eax, edi
imul dword [ebp - 0x178]
xor edx, edx
div dword [ebp - 0x188]
add ecx, eax
mov edi, ecx
jmp 0x576407
mov cl, byte [ebp - 0x168]
shr edi, cl
jmp 0x576407
cmp byte [ebp - 0x611], 0
jne 0x5763ac
mov cl, byte [ebx + 0xb]
mov edi, dword [ebx + 0x18]
shr edi, cl
jmp 0x576407
cmp dword [ebx + 0x18], 0
jne 0x5763b6
xor edi, edi
jmp 0x576407
mov cl, byte [ebp - 0x60d]
mov edi, dword [ebp - 0x600]
and edi, esi
shr edi, cl
cmp byte [ebp - 0x168], 0
je 0x576407
test byte [ebp - 0x168], 0x80
je 0x5763ff
xor ecx, ecx
mov cl, byte [ebp - 0x168]
not ecx
inc ecx
mov eax, edi
shl eax, cl
mov ecx, eax
mov eax, edi
imul dword [ebp - 0x178]
xor edx, edx
div dword [ebp - 0x188]
add ecx, eax
mov edi, ecx
jmp 0x576407
mov cl, byte [ebp - 0x168]
shr edi, cl
cmp dword [ebp + 0x4c], 0
je 0x576413
mov edi, dword [ebp - 0x1cc]
cmp dword [ebp + 0x48], 0
je 0x57642d
xor eax, eax
mov dword [ebp - 0x1cc], eax
mov dword [ebp - 0x1d0], eax
mov dword [ebp - 0x1d4], eax
mov cl, byte [ebx + 8]
mov eax, dword [ebp - 0x1cc]
shl eax, cl
mov cl, byte [ebx + 0xa]
mov edx, dword [ebp - 0x1d0]
shl edx, cl
or eax, edx
mov cl, byte [ebx + 9]
mov edx, dword [ebp - 0x1d4]
shl edx, cl
or eax, edx
mov cl, byte [ebx + 0xb]
shl edi, cl
or eax, edi
cmp byte [ebp - 0x161], 0
jne 0x5764b3
cmp byte [ebx + 7], 0
je 0x5764b3
cmp dword [ebp + 0x3c], 1
jne 0x5764b3
mov cl, byte [ebx + 8]
mov edx, dword [ebp - 0x1cc]
shl edx, cl
cmp edx, dword [ebp - 0x158]
jne 0x5764b0
mov cl, byte [ebx + 9]
mov edx, dword [ebp - 0x1d4]
shl edx, cl
cmp edx, dword [ebp - 0x15c]
jne 0x5764b0
mov cl, byte [ebx + 0xa]
mov edx, dword [ebp - 0x1d0]
shl edx, cl
cmp edx, dword [ebp - 0x160]
jne 0x5764b0
mov edx, dword [ebx + 0x18]
not edx
and eax, edx
jmp 0x5764b3
or eax, dword [ebx + 0x18]
cmp byte [ebp - 0x161], 0
je 0x57675f
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
and ecx, eax
and edx, eax
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebx + 0x14]
and ecx, eax
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebx + 0x18]
and ecx, eax
mov dword [ebp - 0x1e0], ecx
mov ecx, dword [ebp + 0x44]
dec ecx
je 0x5764f8
dec ecx
je 0x5765e5
jmp 0x5766c5
mov ecx, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0x1c4]
and ecx, 3
and edi, 3
shl ecx, 2
add ecx, edi
mov edi, dword [ebp - 0x124]
and edi, esi
mov ecx, dword [ebp + ecx*4 - 0xea0]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebx + 8]
shl edi, cl
mov ecx, dword [ebp - 0x1c0]
add edx, edi
and ecx, 3
mov edi, dword [ebp - 0x1c4]
shl ecx, 2
and edi, 3
add ecx, edi
mov edi, dword [ebp - 0x128]
and edi, esi
mov ecx, dword [ebp + ecx*4 - 0xf20]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebx + 9]
shl edi, cl
add dword [ebp - 0x1d8], edi
mov ecx, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0x1c4]
and ecx, 3
and edi, 3
shl ecx, 2
add ecx, edi
mov edi, dword [ebp - 0x12c]
and edi, esi
mov ecx, dword [ebp + ecx*4 - 0xee0]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebx + 0xa]
shl edi, cl
add dword [ebp - 0x1dc], edi
mov ecx, dword [ebp - 0x1c0]
mov edi, dword [ebp - 0x1c4]
and ecx, 3
and edi, 3
shl ecx, 2
add ecx, edi
mov edi, dword [ebp - 0x130]
and edi, esi
mov ecx, dword [ebp + ecx*4 - 0xf60]
cmp ecx, edi
setb cl
and ecx, 1
mov edi, ecx
mov cl, byte [ebx + 0xb]
shl edi, cl
add dword [ebp - 0x1e0], edi
jmp 0x5766c5
mov ecx, dword [ebp - 0x124]
and ecx, esi
add dword [ebp - 0x148], ecx
mov ecx, dword [ebp - 0x128]
and ecx, esi
add dword [ebp - 0x14c], ecx
mov ecx, dword [ebp - 0x12c]
and ecx, esi
add dword [ebp - 0x150], ecx
mov ecx, dword [ebp - 0x130]
and ecx, esi
add dword [ebp - 0x154], ecx
mov cl, byte [ebx + 8]
mov edi, dword [ebp - 0x148]
cmp edi, dword [ebp - 0x124]
mov edi, 1
ja 0x576634
dec edi
shl edi, cl
add edx, edi
mov edi, dword [ebp - 0x14c]
cmp edi, dword [ebp - 0x128]
mov edi, 1
mov cl, byte [ebx + 9]
ja 0x57664f
dec edi
shl edi, cl
add dword [ebp - 0x1d8], edi
mov cl, byte [ebx + 0xa]
mov edi, dword [ebp - 0x150]
cmp edi, dword [ebp - 0x12c]
mov edi, 1
ja 0x57666e
dec edi
shl edi, cl
add dword [ebp - 0x1dc], edi
mov cl, byte [ebx + 0xb]
mov edi, dword [ebp - 0x154]
cmp edi, dword [ebp - 0x130]
mov edi, 1
ja 0x57668d
dec edi
shl edi, cl
add dword [ebp - 0x1e0], edi
mov ecx, dword [ebp - 0x124]
and dword [ebp - 0x148], ecx
mov ecx, dword [ebp - 0x128]
and dword [ebp - 0x14c], ecx
mov ecx, dword [ebp - 0x12c]
and dword [ebp - 0x150], ecx
mov ecx, dword [ebp - 0x130]
and dword [ebp - 0x1e0], ecx
cmp edx, dword [ebx + 0xc]
jbe 0x5766cd
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebx + 0x10]
cmp ecx, dword [ebp - 0x1d8]
jae 0x5766e1
mov ecx, dword [ebx + 0x10]
mov dword [ebp - 0x1d8], ecx
mov ecx, dword [ebx + 0x14]
cmp ecx, dword [ebp - 0x1dc]
jae 0x5766f5
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x1dc], ecx
mov ecx, dword [ebx + 0x18]
cmp ecx, dword [ebp - 0x1e0]
jae 0x576709
mov ecx, dword [ebx + 0x18]
mov dword [ebp - 0x1e0], ecx
and eax, dword [ebp - 0x140]
or eax, edx
or eax, dword [ebp - 0x1dc]
or eax, dword [ebp - 0x1d8]
or eax, dword [ebp - 0x1e0]
cmp byte [ebx + 7], 0
je 0x57675f
cmp dword [ebp + 0x3c], 1
jne 0x57675f
cmp edx, dword [ebp - 0x158]
jne 0x57675c
mov edx, dword [ebp - 0x1d8]
cmp edx, dword [ebp - 0x15c]
jne 0x57675c
mov edx, dword [ebp - 0x1dc]
cmp edx, dword [ebp - 0x160]
jne 0x57675c
mov ecx, dword [ebx + 0x18]
not ecx
and eax, ecx
jmp 0x57675f
or eax, dword [ebx + 0x18]
mov dl, byte [ebp - 0x162]
sub dl, 1
jb 0x576776
je 0x576788
dec dl
je 0x57679f
dec dl
je 0x5767af
jmp 0x5767b7
or ax, word [ebp - 0x1bc]
mov ecx, dword [ebp - 0x1ac]
mov word [ecx], ax
jmp 0x5767b7
mov edx, dword [ebp - 0x1ac]
mov word [edx], ax
shr eax, 0x10
mov ecx, dword [ebp - 0x1ac]
mov byte [ecx + 2], al
jmp 0x5767b7
or eax, dword [ebp - 0x1bc]
mov edx, dword [ebp - 0x1ac]
mov dword [edx], eax
jmp 0x5767b7
mov ecx, dword [ebp - 0x1ac]
mov byte [ecx], al
inc dword [ebp - 0x1c4]
mov eax, dword [ebp - 0x1c8]
add dword [ebp - 0x1ac], eax
movzx eax, word [ebp - 0x616]
add dword [ebp - 0x1b0], eax
movzx edx, word [ebp - 0xa3a]
add dword [ebp - 0x1b4], edx
mov ecx, dword [ebp - 0x1c4]
cmp ecx, dword [ebp - 4]
jl 0x576129
inc dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x138]
add dword [ebp - 0x1ac], eax
mov edx, dword [ebp - 0x134]
add dword [ebp - 0x1b0], edx
mov ecx, dword [ebp - 0x13c]
add dword [ebp - 0x1b4], ecx
mov eax, dword [ebp - 0x1c0]
cmp eax, dword [ebp - 8]
jl 0x576112
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret