Function at 0x56f2f4
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 0x56f492
je 0x56f774
cmp eax, 0x442c
jg 0x56f3e0
je 0x56fa3e
cmp eax, 0x245b
jg 0x56f38f
je 0x56f7c8
cmp eax, 0x2416
jg 0x56f36d
je 0x56f82f
sub eax, 0x2403
je 0x56f65a
add eax, 0xfffffffe
sub eax, 3
jb 0x56f67b
sub eax, 4
je 0x56f67b
jmp 0x57006a
sub eax, 0x2417
je 0x56f86b
sub eax, 0x13
je 0x56f67b
sub eax, 7
je 0x56fa98
jmp 0x57006a
cmp eax, 0x260a
jg 0x56f3be
je 0x56f6fe
sub eax, 0x245c
je 0x56f7f4
sub eax, 5
je 0x56f65a
sub eax, 0xc
je 0x56f67b
jmp 0x57006a
sub eax, 0x2640
je 0x56faa8
sub eax, 0xdc3
je 0x56fb70
dec eax
je 0x56fb81
jmp 0x57006a
cmp eax, 0x6426
jg 0x56f43e
je 0x56f8d8
cmp eax, 0x5622
jg 0x56f41e
je 0x56fd85
sub eax, 0x4600
je 0x56f5f9
sub eax, 0xb
je 0x56f735
sub eax, 0xdf5
je 0x56fb41
jmp 0x57006a
sub eax, 0x6412
je 0x56f785
sub eax, 0x12
je 0x56f87c
dec eax
je 0x56f8aa
jmp 0x57006a
cmp eax, 0x7621
jg 0x56f470
je 0x56fd73
sub eax, 0x6427
je 0x56f906
dec eax
je 0x56f934
add eax, 0xfffffde3
sub eax, 2
jb 0x56fab8
jmp 0x57006a
sub eax, 0x7623
je 0x56fd97
sub eax, 0xdeb
je 0x56f750
dec eax
je 0x56f762
jmp 0x57006a
cmp eax, 0xc651
jg 0x56f54e
je 0x56f9e6
cmp eax, 0xa413
jg 0x56f4ff
je 0x56f7a4
cmp eax, 0x8460
jg 0x56f4dd
je 0x56f774
sub eax, 0x842f
je 0x56fa84
sub eax, 0x2e
je 0x56f750
dec eax
je 0x56f762
jmp 0x57006a
sub eax, 0x9407
je 0x56fbe8
sub eax, 0x1fa
je 0x56fb52
dec eax
je 0x56fb61
jmp 0x57006a
cmp eax, 0xc64d
jg 0x56f530
je 0x56fa52
sub eax, 0xa414
je 0x56f7b6
sub eax, 0x21f9
je 0x56f741
sub eax, 8
je 0x56f820
jmp 0x57006a
sub eax, 0xc64e
je 0x56f962
dec eax
je 0x56f98e
dec eax
je 0x56f9ba
jmp 0x57006a
cmp eax, 0xd62b
jg 0x56f5af
je 0x56fda9
cmp eax, 0xd609
jg 0x56f58c
je 0x56fce0
sub eax, 0xc652
je 0x56fa12
sub eax, 0xfb3
je 0x56fb92
sub eax, 3
je 0x56fbf9
jmp 0x57006a
sub eax, 0xd612
je 0x56fcf2
dec eax
je 0x56fbbe
add eax, 0xfffffff9
sub eax, 4
jb 0x56ffcc
jmp 0x57006a
cmp eax, 0xd660
jg 0x56f5de
je 0x56fd47
sub eax, 0xd62c
je 0x56fe05
sub eax, 6
je 0x56fe53
sub eax, 2
je 0x56febf
jmp 0x57006a
sub eax, 0xd662
je 0x56ff0d
sub eax, 0x1fb2
je 0x570046
jmp 0x57006a
mov eax, dword [ebp + 8]
cmp byte [eax - 9], 0
jne 0x56f648
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.00560930
mov word [ebx + 0x16], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
cmp byte [eax - 0x241], 0
jne 0x57006a
mov eax, dword [ebp + 8]
push eax
call fcn.0056dc34
pop ecx
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x16], ax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
test al, al
jb 0x56f66a
cmp al, 3
jbe 0x56f673
mov byte [ebx + 0xa], 0
jmp 0x57006a
mov byte [ebx + 0xa], al
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
call fcn.00560920
mov esi, eax
mov eax, dword [ebp - 4]
movzx eax, word [eax]
cmp eax, 0x2407
jg 0x56f6a6
je 0x56f6c8
sub eax, 0x2405
je 0x56f6b4
dec eax
je 0x56f6be
jmp 0x56f6f4
sub eax, 0x240c
je 0x56f6d2
sub eax, 0x1e
je 0x56f6ea
jmp 0x56f6f4
mov eax, esi
mov byte [ebx + 0xc], al
jmp 0x57006a
mov eax, esi
mov byte [ebx + 0xb], al
jmp 0x57006a
mov eax, esi
mov byte [ebx + 0xd], al
jmp 0x57006a
mov eax, dword [0x6694bc]
cmp byte [eax], 0
jne 0x57006a
mov eax, esi
mov byte [ebx + 0x15], al
jmp 0x57006a
mov eax, esi
mov byte [ebx + 0xf], al
jmp 0x57006a
mov eax, esi
mov byte [ebx + 0x14], al
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
sub al, 9
jae 0x56f72c
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
call fcn.00652c64
mov edx, eax
mov eax, 8
call fcn.00652c54
mov byte [ebx + 0x1f], al
jmp 0x57006a
mov byte [ebx + 0x1f], 0
jmp 0x57006a
push ebp
call fcn.0056f0d4
pop ecx
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
call fcn.0056dd04
pop ecx
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 8], ax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 2], ax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx], ax
jmp 0x57006a
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 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x10], ax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov ax, word [eax]
mov word [ebx + 0x12], ax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 1
jne 0x56f7de
mov word [ebx + 0x10], 0xffec
jmp 0x57006a
cmp word [ebx + 0x10], 0xffec
jne 0x57006a
mov word [ebx + 0x10], 0
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 1
jne 0x56f80a
mov word [ebx + 0x12], 0xffec
jmp 0x57006a
cmp word [ebx + 0x12], 0xffec
jne 0x57006a
mov word [ebx + 0x12], 0
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
call fcn.0056dfb0
pop ecx
jmp 0x57006a
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 0x57006a
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 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x28], eax
jmp 0x57006a
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.0056efb8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056efb8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056efb8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056efb8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056efb8
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056f05c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056f05c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056f05c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056f05c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
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.0056f05c
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov byte [eax - 0x243], 1
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, word [eax]
mov dword [ebx + 0x2700], eax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 3
cmp dword [eax], 0xff000000
jne 0x57006a
mov eax, dword [ebp - 4]
add eax, 0xb
cmp word [eax], 0
jne 0x57006a
mov eax, dword [ebp - 4]
add eax, 7
mov eax, dword [eax]
mov dword [ebx + 0x24], eax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movsx eax, word [eax]
mov dword [ebx + 0x2704], eax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
mov byte [ebx + 0xe], al
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
mov al, byte [eax]
mov byte [ebx + 0x18], al
jmp 0x57006a
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.0056c450
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.0056c450
xor esi, esi
jmp 0x56fb2c
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.00570074
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
push eax
mov eax, edi
add eax, esi
call fcn.0056dc14
pop ecx
add esi, eax
movzx eax, word [ebp - 0xe]
dec eax
cmp esi, eax
jl 0x56fb00
mov eax, edi
call fcn.00401fac
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x2c], eax
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
call fcn.0056e214
pop ecx
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
call fcn.0056e270
pop ecx
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x38], eax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx eax, byte [eax]
mov dword [ebx + 0x3c], eax
jmp 0x57006a
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.0056efb8
inc esi
add edi, 0x1c
cmp esi, 6
jne 0x56fb9a
jmp 0x57006a
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.0056f05c
inc esi
add edi, 0x1c
cmp esi, 6
jne 0x56fbc6
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movsx eax, word [eax]
mov dword [ebx + 0x34], eax
jmp 0x57006a
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 0x56fc36
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 0x56fc24
mov edi, dword [ebx + 0x44]
dec edi
test edi, edi
jl 0x57006a
inc edi
lea eax, [ebx + 0x148]
mov ebx, eax
mov eax, dword [ebp - 4]
add eax, 0x14
cmp eax, dword [ebp - 8]
ja 0x57006a
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.0056efb8
lea edx, [ebx + 0x28]
mov eax, dword [esi + 8]
call fcn.0056efb8
lea edx, [ebx + 0x44]
mov eax, dword [esi + 0xc]
call fcn.0056efb8
lea edx, [ebx + 0x60]
mov eax, dword [esi + 0x10]
call fcn.0056efb8
add dword [ebp - 4], 0x14
add ebx, 0x80
dec edi
jne 0x56fc4b
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.0056e2c8
pop ecx
jmp 0x57006a
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 0x57006a
inc edi
lea eax, [ebx + 0x2148]
mov edx, dword [ebp - 4]
add edx, 8
cmp word [edx], 1
jne 0x56fd2e
mov edx, dword [ebp - 4]
mov edx, dword [edx]
mov dword [eax], edx
jmp 0x56fd38
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 0x56fd19
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 0xb
cmp word [eax], 1
jne 0x56fd63
mov eax, dword [ebp - 4]
add eax, 3
mov eax, dword [eax]
mov dword [ebx + 0x40], eax
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 7
mov eax, dword [eax]
mov dword [ebx + 0x40], eax
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.0056e348
pop ecx
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.0056e4b4
pop ecx
jmp 0x57006a
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 4]
call fcn.0056e5d0
pop ecx
jmp 0x57006a
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 0x56fdd5
je 0x56fde3
sub dl, 2
je 0x56fdf3
jmp 0x57006a
xor edx, edx
mov dword [eax], edx
xor edx, edx
mov dword [eax + 4], edx
jmp 0x57006a
mov dword [eax], 1
xor edx, edx
mov dword [eax + 4], edx
jmp 0x57006a
mov dword [eax], 1
mov dword [eax + 4], 1
jmp 0x57006a
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 0x57006a
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 0x56fe39
jmp 0x57006a
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 0x57006a
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 0x56fe9a
mov dword [ecx + 4], edx
test byte [ebp - 0xc], 2
je 0x56fea2
mov dword [ecx], edx
test byte [ebp - 0xc], 4
je 0x56feab
mov dword [ecx + 0xc], edx
test byte [ebp - 0xc], 8
je 0x56feb4
mov dword [ecx + 8], edx
add eax, 0x10
dec edi
jne 0x56fe7a
jmp 0x57006a
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 0x56fee0
mov dword [ebx + 0x26f0], edx
test byte [ebp - 0xc], 2
je 0x56feec
mov dword [ebx + 0x26ec], edx
test byte [ebp - 0xc], 4
je 0x56fef8
mov dword [ebx + 0x26f8], edx
test byte [ebp - 0xc], 8
je 0x57006a
mov dword [ebx + 0x26f4], edx
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx esi, byte [eax]
shr esi, 2
dec esi
cmp esi, 0
jl 0x57006a
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 0x56ff56
cmp edi, 0x1b
jle 0x56ff5d
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 0x56ff73
cmp edi, 0x1b
jle 0x56ff7a
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 0x56ff92
cmp edi, 0x1b
jle 0x56ff99
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 0x56ffb1
cmp edi, 0x1b
jle 0x56ffb8
mov dword [edx + 0x64], 1
dec esi
sub eax, 0x80
cmp esi, 0xffffffff
jne 0x56ff2f
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
movzx esi, byte [eax]
shr esi, 2
dec esi
cmp esi, 0
jl 0x57006a
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 0x57001b
dec cx
je 0x570023
dec cx
je 0x57002b
jmp 0x570033
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x14], ecx
jmp 0x570039
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x30], ecx
jmp 0x570039
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x4c], ecx
jmp 0x570039
mov ecx, dword [ebp - 0xc]
mov dword [edx + 0x68], ecx
dec esi
sub eax, 0x80
cmp esi, 0xffffffff
jne 0x56ffee
jmp 0x57006a
mov eax, dword [ebp - 4]
add eax, 2
cmp byte [eax], 2
jne 0x570062
mov eax, dword [ebp - 4]
add eax, 3
movzx eax, word [eax]
mov dword [ebx + 0x26fc], eax
jmp 0x57006a
xor eax, eax
mov dword [ebx + 0x26fc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret