Function at 0x577a50
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx - 4]
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp eax, 0x8411
jg 0x577bee
je 0x577ed0
cmp eax, 0x442c
jg 0x577b3c
je 0x57819a
cmp eax, 0x245b
jg 0x577aeb
je 0x577f24
cmp eax, 0x2416
jg 0x577ac9
je 0x577f8b
sub eax, 0x2403
je 0x577db6
add eax, 0xfffffffe
sub eax, 3
jb 0x577dd7
sub eax, 4
je 0x577dd7
jmp 0x5787c6
sub eax, 0x2417
je 0x577fc7
sub eax, 0x13
je 0x577dd7
sub eax, 7
je 0x5781f4
jmp 0x5787c6
cmp eax, 0x260a
jg 0x577b1a
je 0x577e5a
sub eax, 0x245c
je 0x577f50
sub eax, 5
je 0x577db6
sub eax, 0xc
je 0x577dd7
jmp 0x5787c6
sub eax, 0x2640
je 0x578204
sub eax, 0xdc3
je 0x5782cc
dec eax
je 0x5782dd
jmp 0x5787c6
cmp eax, 0x6426
jg 0x577b9a
je 0x578034
cmp eax, 0x5622
jg 0x577b7a
je 0x5784e1
sub eax, 0x4600
je 0x577d55
sub eax, 0xb
je 0x577e91
sub eax, 0xdf5
je 0x57829d
jmp 0x5787c6
sub eax, 0x6412
je 0x577ee1
sub eax, 0x12
je 0x577fd8
dec eax
je 0x578006
jmp 0x5787c6
cmp eax, 0x7621
jg 0x577bcc
je 0x5784cf
sub eax, 0x6427
je 0x578062
dec eax
je 0x578090
add eax, 0xfffffde3
sub eax, 2
jb 0x578214
jmp 0x5787c6
sub eax, 0x7623
je 0x5784f3
sub eax, 0xdeb
je 0x577eac
dec eax
je 0x577ebe
jmp 0x5787c6
cmp eax, 0xc651
jg 0x577caa
je 0x578142
cmp eax, 0xa413
jg 0x577c5b
je 0x577f00
cmp eax, 0x8460
jg 0x577c39
je 0x577ed0
sub eax, 0x842f
je 0x5781e0
sub eax, 0x2e
je 0x577eac
dec eax
je 0x577ebe
jmp 0x5787c6
sub eax, 0x9407
je 0x578344
sub eax, 0x1fa
je 0x5782ae
dec eax
je 0x5782bd
jmp 0x5787c6
cmp eax, 0xc64d
jg 0x577c8c
je 0x5781ae
sub eax, 0xa414
je 0x577f12
sub eax, 0x21f9
je 0x577e9d
sub eax, 8
je 0x577f7c
jmp 0x5787c6
sub eax, 0xc64e
je 0x5780be
dec eax
je 0x5780ea
dec eax
je 0x578116
jmp 0x5787c6
cmp eax, 0xd62b
jg 0x577d0b
je 0x578505
cmp eax, 0xd609
jg 0x577ce8
je 0x57843c
sub eax, 0xc652
je 0x57816e
sub eax, 0xfb3
je 0x5782ee
sub eax, 3
je 0x578355
jmp 0x5787c6
sub eax, 0xd612
je 0x57844e
dec eax
je 0x57831a
add eax, 0xfffffff9
sub eax, 4
jb 0x578728
jmp 0x5787c6
cmp eax, 0xd660
jg 0x577d3a
je 0x5784a3
sub eax, 0xd62c
je 0x578561
sub eax, 6
je 0x5785af
sub eax, 2
je 0x57861b
jmp 0x5787c6
sub eax, 0xd662
je 0x578669
sub eax, 0x1fb2
je 0x5787a2
jmp 0x5787c6
mov eax, dword [ebp + 8]
cmp byte [eax - 9], 0
jne 0x577da4
mov eax, dword [ebp - 4]
add eax, 2
movsx edx, word [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov eax, dword [eax + 0x1d4]
call fcn.0056908c
mov word [ebx + 0x16], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
cmp byte [eax - 0x241], 0
jne 0x5787c6
mov eax, dword [ebp + 8]
push eax
call fcn.00576390
pop ecx
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x16], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
test al, al
jb 0x577dc6
cmp al, 3
jbe 0x577dcf
mov byte [ebx + 0xa], 0
jmp 0x5787c6
mov byte [ebx + 0xa], al
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
call fcn.0056907c
mov esi, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp eax, 0x2407
jg 0x577e02
je 0x577e24
sub eax, 0x2405
je 0x577e10
dec eax
je 0x577e1a
jmp 0x577e50
sub eax, 0x240c
je 0x577e2e
sub eax, 0x1e
je 0x577e46
jmp 0x577e50
mov eax, esi
mov byte [ebx + 0xc], al
jmp 0x5787c6
mov eax, esi
mov byte [ebx + 0xb], al
jmp 0x5787c6
mov eax, esi
mov byte [ebx + 0xd], al
jmp 0x5787c6
mov eax, dword [0x6722fc]
cmp byte [eax], 0
jne 0x5787c6
mov eax, esi
mov byte [ebx + 0x15], al
jmp 0x5787c6
mov eax, esi
mov byte [ebx + 0xf], al
jmp 0x5787c6
mov eax, esi
mov byte [ebx + 0x14], al
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
sub al, 9
jae 0x577e88
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
call fcn.00656b80
mov edx, eax
mov eax, 8
call fcn.00656b70
mov byte [ebx + 0x1f], al
jmp 0x5787c6
mov byte [ebx + 0x1f], 0
jmp 0x5787c6
push ebp
call fcn.00577830
pop ecx
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
call fcn.00576460
pop ecx
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 8], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 2], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 4], ax
mov eax, dword [ebp - 4]
add eax, 4
mov ax, word [eax]
mov word [ebx + 6], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x10], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x12], ax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 1
jne 0x577f3a
mov word [ebx + 0x10], 0xffec
jmp 0x5787c6
cmp word [ebx + 0x10], 0xffec
jne 0x5787c6
mov word [ebx + 0x10], 0
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 1
jne 0x577f66
mov word [ebx + 0x12], 0xffec
jmp 0x5787c6
cmp word [ebx + 0x12], 0xffec
jne 0x5787c6
mov word [ebx + 0x12], 0
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
call fcn.0057670c
pop ecx
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
cmp byte [eax + 0x430], 0
jne 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
mov byte [ebx + 0x20], al
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x10]
mov byte [eax + 0x436], 1
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x28], eax
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x748]
mov eax, dword [ebp - 4]
add eax, 2
mov eax, dword [eax]
call fcn.00577714
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x764]
mov eax, dword [ebp - 4]
add eax, 2
mov eax, dword [eax]
call fcn.00577714
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x710]
mov eax, dword [ebp - 4]
add eax, 2
mov eax, dword [eax]
call fcn.00577714
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x72c]
mov eax, dword [ebp - 4]
add eax, 2
mov eax, dword [eax]
call fcn.00577714
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x6f4]
mov eax, dword [ebp - 4]
add eax, 2
mov eax, dword [eax]
call fcn.00577714
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x748]
mov eax, dword [ebp - 4]
add eax, 3
call fcn.005777b8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x764]
mov eax, dword [ebp - 4]
add eax, 3
call fcn.005777b8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x710]
mov eax, dword [ebp - 4]
add eax, 3
call fcn.005777b8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x72c]
mov eax, dword [ebp - 4]
add eax, 3
call fcn.005777b8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax + 8]
lea edx, [eax - 0x6f4]
mov eax, dword [ebp - 4]
add eax, 3
call fcn.005777b8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, word [eax]
mov dword [ebx + 0x2700], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 3
cmp dword [eax], 0xff000000
jne 0x5787c6
mov eax, dword [ebp - 4]
add eax, 0xb
cmp word [eax], 0
jne 0x5787c6
mov eax, dword [ebp - 4]
add eax, 7
mov eax, dword [eax]
mov dword [ebx + 0x24], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movsx eax, word [eax]
mov dword [ebx + 0x2704], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
mov byte [ebx + 0xe], al
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
mov byte [ebx + 0x18], al
jmp 0x5787c6
push 2
lea ecx, [ebp - 0xe]
mov eax, dword [ebp - 4]
add eax, 2
mov edx, dword [eax]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x248]
call fcn.00574bac
movzx eax, word [ebp - 0xe]
call fcn.00401e58
mov edi, eax
movzx eax, word [ebp - 0xe]
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x248]
mov ecx, edi
or edx, 0xffffffff
call fcn.00574bac
xor esi, esi
jmp 0x578288
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp + 8]
mov cl, byte [eax - 9]
mov edx, ebx
mov eax, edi
add eax, esi
call fcn.005787d0
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov eax, edi
add eax, esi
call fcn.00576370
pop ecx
add esi, eax
movzx eax, word [ebp - 0xe]
dec eax
cmp esi, eax
jl 0x57825c
mov eax, edi
call fcn.00401fac
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x2c], eax
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
call fcn.00576970
pop ecx
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
call fcn.005769cc
pop ecx
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x38], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x3c], eax
jmp 0x5787c6
xor esi, esi
lea edi, [ebx + 0x2244]
mov eax, dword [ebp - 4]
add eax, 3
mov edx, esi
shl edx, 2
add eax, edx
mov eax, dword [eax]
mov edx, edi
call fcn.00577714
inc esi
add edi, 0x1c
cmp esi, 6
jne 0x5782f6
jmp 0x5787c6
xor esi, esi
lea edi, [ebx + 0x2244]
mov eax, dword [ebp - 4]
add eax, 3
mov edx, esi
shl edx, 3
add eax, edx
mov edx, edi
call fcn.005777b8
inc esi
add edi, 0x1c
cmp esi, 6
jne 0x578322
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movsx eax, word [eax]
mov dword [ebx + 0x34], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 4
mov edx, eax
mov ecx, dword [ebp - 4]
add ecx, 2
movzx ecx, word [ecx]
add edx, ecx
mov dword [ebp - 8], edx
movzx eax, byte [eax]
mov dword [ebx + 0x44], eax
add dword [ebp - 4], 5
mov edi, dword [ebx + 0x44]
test edi, edi
jl 0x578392
inc edi
lea eax, [ebx + 0x48]
mov edx, dword [ebp - 4]
movsx edx, word [edx]
mov dword [eax], edx
add dword [ebp - 4], 2
add eax, 4
dec edi
jne 0x578380
mov edi, dword [ebx + 0x44]
dec edi
test edi, edi
jl 0x5787c6
inc edi
lea eax, [ebx + 0x148]
mov ebx, eax
mov eax, dword [ebp - 4]
add eax, 0x14
cmp eax, dword [ebp - 8]
ja 0x5787c6
mov esi, dword [ebp - 4]
mov ax, word [esi]
and ax, 0x20
movzx eax, ax
shr eax, 5
mov dword [ebx], eax
mov ax, word [esi]
and ax, 0x40
movzx eax, ax
shr eax, 6
mov dword [ebx + 4], eax
mov ax, word [esi]
and ax, 0x180
movzx eax, ax
shr eax, 7
mov dword [ebx + 8], eax
movzx eax, word [esi]
and eax, 0xc000
shr eax, 0xe
dec eax
sete al
mov byte [ebx + 0x7c], al
lea edx, [ebx + 0xc]
mov eax, dword [esi + 4]
call fcn.00577714
lea edx, [ebx + 0x28]
mov eax, dword [esi + 8]
call fcn.00577714
lea edx, [ebx + 0x44]
mov eax, dword [esi + 0xc]
call fcn.00577714
lea edx, [ebx + 0x60]
mov eax, dword [esi + 0x10]
call fcn.00577714
add dword [ebp - 4], 0x14
add ebx, 0x80
dec edi
jne 0x5783a7
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.00576a24
pop ecx
jmp 0x5787c6
add dword [ebp - 4], 2
mov eax, dword [ebp - 4]
movzx eax, byte [eax]
mov ecx, 0xa
cdq
idiv ecx
dec eax
inc dword [ebp - 4]
mov edi, eax
test edi, edi
jl 0x5787c6
inc edi
lea eax, [ebx + 0x2148]
mov edx, dword [ebp - 4]
add edx, 8
cmp word [edx], 1
jne 0x57848a
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [eax], edx
jmp 0x578494
mov edx, dword [ebp - 4]
add edx, 4
mov edx, dword [edx]
mov dword [eax], edx
add dword [ebp - 4], 0xa
add eax, 4
dec edi
jne 0x578475
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 0xb
cmp word [eax], 1
jne 0x5784bf
mov eax, dword [ebp - 4]
add eax, 3
mov eax, dword [eax]
mov dword [ebx + 0x40], eax
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 7
mov eax, dword [eax]
mov dword [ebx + 0x40], eax
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.00576aa4
pop ecx
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.00576c10
pop ecx
jmp 0x5787c6
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.00576d2c
pop ecx
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 3
movzx eax, byte [eax]
shl eax, 4
lea eax, [ebx + eax*8 + 0x148]
mov edx, dword [ebp - 4]
add edx, 4
mov dl, byte [edx]
sub dl, 1
jb 0x578531
je 0x57853f
sub dl, 2
je 0x57854f
jmp 0x5787c6
xor edx, edx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
jmp 0x5787c6
mov dword [eax], 1
xor edx, edx
mov dword [eax + 4], edx
jmp 0x5787c6
mov dword [eax], 1
mov dword [eax + 4], 1
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
mov esi, dword [eax]
mov eax, esi
shr eax, 8
and eax, 0xff
mov edi, esi
and edi, 0xff
dec edi
sub edi, eax
jl 0x5787c6
inc edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
shl eax, 4
lea eax, [ebx + eax*8 + 0x150]
mov edx, esi
shr edx, 0x18
and edx, 0xff
mov dword [eax], edx
add eax, 0x80
dec edi
jne 0x578595
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 3
movzx esi, byte [eax]
mov eax, dword [ebp - 4]
add eax, 4
movzx edi, byte [eax]
dec edi
sub edi, esi
jl 0x5787c6
inc edi
mov eax, esi
add eax, eax
lea eax, [ebx + eax*8 + 0x22ec]
mov ecx, eax
mov edx, dword [ebp - 4]
add edx, 5
movzx edx, byte [edx]
mov dword [ebp - 0xc], edx
mov edx, dword [ebp - 4]
add edx, 7
movzx edx, word [edx]
test byte [ebp - 0xc], 1
je 0x5785f6
mov dword [ecx + 4], edx
test byte [ebp - 0xc], 2
je 0x5785fe
mov dword [ecx], edx
test byte [ebp - 0xc], 4
je 0x578607
mov dword [ecx + 0xc], edx
test byte [ebp - 0xc], 8
je 0x578610
mov dword [ecx + 8], edx
add eax, 0x10
dec edi
jne 0x5785d6
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 5
movzx eax, byte [eax]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
add eax, 7
movzx edx, word [eax]
test byte [ebp - 0xc], 1
je 0x57863c
mov dword [ebx + 0x26f0], edx
test byte [ebp - 0xc], 2
je 0x578648
mov dword [ebx + 0x26ec], edx
test byte [ebp - 0xc], 4
je 0x578654
mov dword [ebx + 0x26f8], edx
test byte [ebp - 0xc], 8
je 0x5787c6
mov dword [ebx + 0x26f4], edx
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx esi, byte [eax]
shr esi, 2
dec esi
cmp esi, 0
jl 0x5787c6
mov eax, esi
shl eax, 4
lea eax, [ebx + eax*8 + 0x148]
mov edx, eax
mov ecx, dword [ebp - 4]
add ecx, 3
mov edi, esi
shl edi, 2
add ecx, edi
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 0xc]
movzx ecx, byte [ecx]
mov dword [edx + 0x10], ecx
mov edi, dword [edx + 0x10]
test edi, edi
jl 0x5786b2
cmp edi, 0x1b
jle 0x5786b9
mov dword [edx + 0x10], 1
mov ecx, dword [ebp - 0xc]
inc ecx
movzx ecx, byte [ecx]
mov dword [edx + 0x2c], ecx
mov edi, dword [edx + 0x2c]
test edi, edi
jl 0x5786cf
cmp edi, 0x1b
jle 0x5786d6
mov dword [edx + 0x2c], 1
mov ecx, dword [ebp - 0xc]
add ecx, 2
movzx ecx, byte [ecx]
mov dword [edx + 0x48], ecx
mov edi, dword [edx + 0x48]
test edi, edi
jl 0x5786ee
cmp edi, 0x1b
jle 0x5786f5
mov dword [edx + 0x48], 1
mov ecx, dword [ebp - 0xc]
add ecx, 3
movzx ecx, byte [ecx]
mov dword [edx + 0x64], ecx
mov edi, dword [edx + 0x64]
test edi, edi
jl 0x57870d
cmp edi, 0x1b
jle 0x578714
mov dword [edx + 0x64], 1
dec esi
sub eax, 0x80
cmp esi, 0xffffffff
jne 0x57868b
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
movzx esi, byte [eax]
shr esi, 2
dec esi
cmp esi, 0
jl 0x5787c6
mov eax, esi
shl eax, 4
lea eax, [ebx + eax*8 + 0x148]
mov edx, eax
mov ecx, dword [ebp - 4]
add ecx, 3
mov edi, esi
shl edi, 2
add ecx, edi
mov ecx, dword [ecx]
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 4]
mov cx, word [ecx]
sub cx, 0xd61a
je 0x578777
dec cx
je 0x57877f
dec cx
je 0x578787
jmp 0x57878f
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x14], ecx
jmp 0x578795
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x30], ecx
jmp 0x578795
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x4c], ecx
jmp 0x578795
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x68], ecx
dec esi
sub eax, 0x80
cmp esi, 0xffffffff
jne 0x57874a
jmp 0x5787c6
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 2
jne 0x5787be
mov eax, dword [ebp - 4]
add eax, 3
movzx eax, word [eax]
mov dword [ebx + 0x26fc], eax
jmp 0x5787c6
xor eax, eax
mov dword [ebx + 0x26fc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret