Function at 0x1002e318
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x120
mov dword [ebp - 0x118], edi
mov dword [ebp - 0x11c], esi
mov eax, dword [ebp + 8]
mov esi, dword [eax + 4]
xor edx, edx
mov dword [ebp - 0x120], eax
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x114], ebx
mov edi, 1
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x20], edx
mov ebx, edx
mov dword [ebp - 0xa0], edx
movzx edx, byte [esi + 0x12d]
lea eax, [ebp + 0x10]
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x30], edi
and edx, 4
push ecx
shr edx, 2
mov dword [ebp - 0x14], edx
lea edx, [ebp - 0xb0]
push edx
push eax
lea edx, [ebp + 0xc]
push edx
call fcn.10013d90
mov dword [ebp - 8], eax
add esp, 0x10
mov edx, eax
test edx, edx
jne 0x1002f8bc
mov ecx, dword [ebp - 0xa8]
cmp ecx, 2
je 0x1002f8a3
cmp ecx, 1
je 0x1002f87f
movzx eax, byte [esi + 0x12d]
mov dword [ebp - 4], eax
test al, 8
je 0x1002e41c
movsx eax, byte [esi + 0x120]
test eax, eax
jne 0x1002e41c
mov eax, dword [ebp - 0xa4]
cmp eax, 1
jle 0x1002e41c
cmp ecx, 5
jl 0x1002e40a
cmp ecx, 0x11
jle 0x1002e40f
cmp ecx, 0x19
jl 0x1002e403
cmp ecx, 0x1f
jle 0x1002e40f
cmp ecx, 0x32
jl 0x1002e3f7
cmp ecx, 0x34
jle 0x1002e40f
jmp 0x1002e41c
cmp ecx, 0x28
jl 0x1002e41c
cmp ecx, 0x30
jle 0x1002e40f
jmp 0x1002e41c
cmp ecx, 0x32
jge 0x1002e40f
jmp 0x1002e41c
cmp ecx, 0x19
jl 0x1002e41c
mov eax, 1
mov dword [ebp - 0xa0], eax
jmp 0x1002e424
xor eax, eax
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0x110]
cmp eax, 7
jl 0x1002e56d
cmp eax, 8
jg 0x1002e56d
mov ebx, dword [ebp - 0xa4]
test ebx, ebx
je 0x1002e453
mov eax, dword [ebp - 0xac]
cdq
idiv ebx
mov edi, eax
jmp 0x1002e455
xor edi, edi
test edi, edi
jne 0x1002e482
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e472
mov ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x1002e7a7
mov eax, dword [ebp - 8]
mov ecx, 1
mov dword [ebp - 0x10], ecx
jmp 0x1002e6b9
cmp ecx, 0x34
je 0x1002e491
cmp ecx, 0x1c
jl 0x1002e49e
cmp ecx, 0x2c
jg 0x1002e49e
mov edx, 1
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x18], edx
jmp 0x1002e4a3
xor edx, edx
mov dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x10c]
test edx, edx
jle 0x1002e4ce
cmp ebx, dword [ebp - 0xfc]
jne 0x1002e4d6
mov ecx, dword [ebp - 0x100]
cmp ecx, dword [ebp - 0x104]
jg 0x1002e4d6
cmp ecx, 1
je 0x1002e82f
jmp 0x1002e4d6
test edx, edx
jle 0x1002e8f9
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
xor eax, eax
xor ecx, ecx
mov edi, dword [ebp + ecx - 0x100]
mov esi, dword [ebp + ecx - 0xfc]
mov dword [ebp + eax*4 - 0x88], edi
add ecx, 0xc
mov dword [ebp + eax*4 - 0x6c], esi
mov dword [ebp + eax*4 - 0x50], edi
add eax, 1
cmp eax, edx
jl 0x1002e4e3
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
test edx, edx
jle 0x1002e8f9
mov dword [ebp - 0x90], esi
xor ecx, ecx
xor eax, eax
mov esi, dword [ebp + ecx*4 - 0x50]
sub esi, dword [ebp + ecx*4 - 0x88]
imul esi, dword [ebp + ecx*4 - 0x6c]
add ecx, 1
add eax, esi
cmp ecx, edx
jl 0x1002e525
mov esi, dword [ebp - 0x90]
add eax, dword [ebp - 0x108]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x50]
lea edx, [ebp - 0x110]
mov dword [ebp - 0x30], edi
push edx
push ecx
push 0
call fcn.1002470c
add esp, 0xc
jmp 0x1002e793
cmp eax, 6
je 0x1002e57b
cmp eax, 5
jne 0x1002e660
mov eax, dword [ebp - 0xa4]
test eax, eax
je 0x1002e58d
mov ebx, dword [ebp - 0xac]
jmp 0x1002e58f
xor ebx, ebx
test ebx, ebx
jne 0x1002e5bc
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e5ac
mov edi, 1
mov dword [ebp - 0x10], edi
jmp 0x1002e7a7
mov eax, dword [ebp - 8]
mov edi, 1
mov dword [ebp - 0x10], edi
jmp 0x1002e6b9
mov eax, dword [ebp - 4]
test al, 4
jne 0x1002e5dd
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e6b1
mov edi, 1
jmp 0x1002e7a7
lea eax, [ebp - 0xb0]
push esi
push eax
call fcn.1002405c
add esp, 8
test eax, eax
je 0x1002e636
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x1002e61c
mov ebx, dword [ebp - 0xa4]
test ebx, ebx
je 0x1002e615
mov eax, dword [ebp - 0xac]
cdq
idiv ebx
mov edi, eax
jmp 0x1002e793
xor edi, edi
jmp 0x1002e793
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e6b1
mov edi, 1
jmp 0x1002e7a7
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e651
mov edi, 1
xor ecx, ecx
mov dword [ebp - 0x14], ecx
jmp 0x1002e7a7
mov eax, dword [ebp - 8]
mov edi, 1
xor ecx, ecx
mov dword [ebp - 0x14], ecx
jmp 0x1002e6b9
cmp ecx, 0x34
je 0x1002e66f
cmp ecx, 0x1c
jl 0x1002e695
cmp ecx, 0x2c
jg 0x1002e695
mov ebx, dword [ebp - 0xa4]
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e68b
mov edi, 2
jmp 0x1002e7a7
mov eax, dword [ebp - 8]
mov edi, 2
jmp 0x1002e6b9
mov ebx, dword [ebp - 0xac]
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002e6b1
mov edi, 1
jmp 0x1002e7a7
mov eax, dword [ebp - 8]
mov edi, 1
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x1002f70a
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x1002e9f5
cmp edi, 1
jle 0x1002e35d
mov eax, dword [ebp - 0x110]
cmp eax, 7
je 0x1002e6f2
cmp eax, 8
jne 0x1002e784
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x1002e712
mov eax, dword [ebp - 0xa4]
add dword [ebp - 0xb0], eax
add edi, 0xffffffff
xor edx, edx
mov dword [ebp - 0x18], edx
jmp 0x1002e793
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
test eax, eax
mov eax, dword [ebp - 0x10c]
je 0x1002e727
mov edx, 1
mov dword [ebp - 0x18], edx
test eax, eax
jle 0x1002e900
mov dword [ebp - 0x90], esi
xor edx, edx
mov dword [ebp - 0x8c], edx
mov esi, edx
mov ecx, dword [ebp + esi*4 - 0x50]
sub ecx, dword [ebp + esi*4 - 0x88]
imul ecx, dword [ebp + esi*4 - 0x6c]
add esi, 1
add edx, ecx
cmp esi, eax
jl 0x1002e742
mov esi, dword [ebp - 0x90]
add edx, dword [ebp - 0x108]
mov dword [ebp - 0xb0], edx
lea edx, [ebp - 0x50]
lea eax, [ebp - 0x110]
push eax
push edx
push 0
call fcn.1002470c
add esp, 0xc
jmp 0x1002e790
mov ebx, dword [ebp - 0xa4]
add dword [ebp - 0xb0], ebx
add edi, 0xffffffff
movzx eax, byte [esi + 0x12f]
mov dword [ebp - 4], eax
test al, 4
je 0x1002e6bf
mov edx, eax
and edx, 0xfffffffb
mov byte [esi + 0x12f], dl
cmp edi, 1
je 0x1002e9c6
push esi
call fcn.1001c610
pop ecx
test eax, eax
jne 0x1002e907
mov edx, dword [esi + 0x50]
movzx ecx, byte [esi + 0x128]
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test cl, 1
je 0x1002e80c
movzx ecx, byte [esi + 0x12b]
test cl, 4
je 0x1002e80c
movsx ecx, byte [esi + 0x11d]
cmp ecx, 2
jne 0x1002e80c
lea ecx, [edx + 1]
mov dword [esi + 0x3c], ecx
jmp 0x1002e80f
mov dword [esi + 0x3c], edx
mov ecx, dword [esi + 0xc0]
add edx, ecx
mov dword [esi + 0x44], edx
movzx edx, byte [esi + 0x12f]
and edx, 0xfffffff7
mov byte [esi + 0x12f], dl
jmp 0x1002e6b9
cmp edx, 1
jg 0x1002e891
mov edx, dword [ebp - 4]
test dl, 4
je 0x1002e86a
lea edx, [ebp - 0xb0]
push esi
mov dword [ebp - 0x30], edi
push edx
call fcn.1002405c
add esp, 8
test eax, eax
jne 0x1002e860
mov ebx, dword [ebp - 0xac]
xor eax, eax
mov dword [ebp - 0x14], eax
jmp 0x1002e870
mov edx, dword [ebp - 0xa0]
test edx, edx
je 0x1002e886
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x108]
mov dword [ebp - 0xb0], eax
mov edi, 1
jmp 0x1002e793
mov edx, dword [ebp - 0x10c]
jmp 0x1002e4ce
mov dword [ebp - 0x90], esi
mov eax, 1
mov ecx, 0xc
mov esi, dword [ebp + ecx - 0x100]
cmp esi, 1
je 0x1002e8b8
mov esi, dword [ebp - 0x90]
jmp 0x1002e4ce
cmp esi, dword [ebp + ecx - 0x104]
jg 0x1002e8ad
mov esi, dword [ebp + ecx - 0x110]
imul esi, dword [ebp + ecx - 0x108]
cmp esi, dword [ebp + ecx - 0xfc]
je 0x1002e8e4
mov esi, dword [ebp - 0x90]
jmp 0x1002e4ce
add ecx, 0xc
add eax, 1
cmp eax, edx
jl 0x1002e8a1
mov esi, dword [ebp - 0x90]
jmp 0x1002e834
xor eax, eax
jmp 0x1002e544
xor edx, edx
jmp 0x1002e761
mov ebx, dword [ebp - 0x114]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002e9a9
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1002e949
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1002e939
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ecx, byte [esi + 0x12b]
mov edi, ecx
and edi, 0x40
xor edx, edx
test edi, edi
setne dl
movzx edi, byte [esi + 0x12c]
test ecx, 0x80
mov ecx, 2
jne 0x1002e977
mov ecx, 0
test edi, 1
mov edi, 4
jne 0x1002e989
mov edi, 0
or edx, ecx
or edx, edi
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
movsx ecx, byte [eax]
cmp ecx, 1
jne 0x1002e7b9
mov eax, dword [ebp - 0xb0]
mov dword [esi + 0x80], eax
mov dword [esi + 0xfc], ebx
or edx, 8
mov byte [esi + 0x12f], dl
jmp 0x1002e7b9
mov eax, dword [ebp - 0xb0]
mov edx, dword [ebp - 0xa4]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x98], edx
lea ecx, [edx - 1]
cmp ecx, 0x20
jae 0x1002ea40
mov eax, 1
shl eax, cl
test eax, 0x808a
je 0x1002ea40
mov eax, dword [ebp - 0x1c]
mov edx, dword [esi + 0x3c]
mov dword [ebp - 0x94], edx
and eax, ecx
and ecx, edx
mov dword [ebp - 0x8c], eax
mov eax, 1
mov dword [ebp - 0x28], eax
jmp 0x1002ea5d
mov ecx, dword [ebp - 0x1c]
and ecx, 0xf
mov dword [ebp - 0x8c], ecx
mov ecx, dword [esi + 0x3c]
xor eax, eax
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x28], eax
and ecx, 0xf
mov eax, dword [ebp - 4]
mov dword [ebp - 0x9c], ebx
test al, 0x10
jne 0x1002f15b
mov edx, dword [ebp - 0x94]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x2c], eax
lea edx, [edx + ebx]
cmp eax, edx
mov dword [ebp - 0x24], edx
jae 0x1002ec34
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x1c]
sub eax, edx
mov dword [ebp - 0x2c], eax
push eax
push edx
push ecx
call fcn.1007f4d4
add esp, 0xc
mov eax, dword [ebp - 0x2c]
movzx edx, byte [esi + 0x12f]
add dword [esi + 0x3c], eax
test edx, 0x80
je 0x1002f2f4
push esi
call fcn.1001c610
mov dword [ebp - 8], eax
add esp, 4
test eax, eax
jne 0x1002f235
mov eax, dword [esi + 0x50]
movzx edx, byte [esi + 0x128]
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
mov dword [ebp - 0x98], eax
and byte [esi + 0x12e], 0x7f
test dl, 1
je 0x1002eb20
movzx eax, byte [esi + 0x12b]
test al, 4
je 0x1002eb20
movsx eax, byte [esi + 0x11d]
cmp eax, 2
jne 0x1002eb20
mov eax, dword [ebp - 0x98]
lea edx, [eax + 1]
mov dword [ebp - 4], edx
mov dword [esi + 0x3c], edx
jmp 0x1002eb2c
mov eax, dword [ebp - 0x98]
mov dword [ebp - 4], eax
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0x98]
add eax, dword [esi + 0xc0]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 4]
add dword [ebp - 0x1c], edx
sub ebx, edx
mov dword [esi + 0x44], eax
lea edx, [ecx + ebx]
mov dword [ebp - 0x98], eax
cmp eax, edx
jae 0x1002ebf8
mov ecx, eax
mov edx, dword [ebp - 4]
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], edi
mov eax, dword [ebp - 0x1c]
mov ebx, ecx
sub ebx, edx
push ebx
push edx
push eax
call fcn.1007f4d4
add dword [esi + 0x3c], ebx
push esi
call fcn.1001c610
add esp, 0x10
test eax, eax
jne 0x1002f64b
mov ecx, dword [esi + 0x50]
movzx edx, byte [esi + 0x128]
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test dl, 1
je 0x1002ebc9
movzx edx, byte [esi + 0x12b]
test dl, 4
je 0x1002ebc9
movsx edx, byte [esi + 0x11d]
cmp edx, 2
jne 0x1002ebc9
lea edx, [ecx + 1]
mov dword [esi + 0x3c], edx
jmp 0x1002ebce
mov edx, ecx
mov dword [esi + 0x3c], ecx
add ecx, dword [esi + 0xc0]
mov edi, dword [ebp - 0x20]
add dword [ebp - 0x1c], ebx
mov dword [esi + 0x44], ecx
sub edi, ebx
mov dword [ebp - 0x20], edi
lea ebx, [edx + edi]
cmp ecx, ebx
jb 0x1002eb62
mov ebx, edi
mov edi, dword [ebp - 0x30]
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
push ebx
push eax
push edx
call fcn.1007f4d4
add esp, 0xc
mov eax, dword [ebp - 0xa0]
add dword [esi + 0x3c], ebx
test eax, eax
je 0x1002f1fd
mov eax, dword [ebp - 0xa4]
mov edx, dword [ebp - 0xb0]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x1c], edx
jmp 0x1002f169
mov eax, dword [ebp - 0x1c]
lea edx, [eax + ebx]
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 4], edx
test eax, eax
je 0x1002ef94
mov eax, dword [ebp - 0x8c]
test al, 3
jne 0x1002eeea
test cl, 3
jne 0x1002eeea
mov eax, dword [ebp - 0x98]
cmp eax, 4
je 0x1002ee77
cmp eax, 8
jne 0x1002ed15
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3c6
mov dword [ebp - 0x20], ebx
mov ebx, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x94]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
shl edx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, edx
mov dword [ebx], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
and eax, 0xff00
shl eax, 8
or edx, eax
shl ecx, 0x18
or edx, ecx
mov eax, dword [ebp - 0x98]
mov dword [ebx + 4], edx
add ebx, eax
add esi, eax
mov eax, dword [ebp - 4]
cmp ebx, eax
jb 0x1002ec99
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
xor eax, eax
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
cmp eax, 0x10
jne 0x1002ee17
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3c6
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov ebx, dword [ebp - 0x94]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov ebx, edi
shr ebx, 0x18
mov esi, edi
and esi, 0xff0000
shr esi, 8
or ebx, esi
mov esi, edi
and esi, 0xff00
shl esi, 8
or ebx, esi
mov esi, dword [ebp - 0x1c]
shl edi, 0x18
or ebx, edi
mov dword [esi], ebx
mov ebx, eax
shr ebx, 0x18
mov edi, eax
and edi, 0xff0000
shr edi, 8
or ebx, edi
mov edi, eax
shl eax, 0x18
and edi, 0xff00
shl edi, 8
or ebx, edi
or ebx, eax
mov dword [esi + 4], ebx
mov ebx, edx
shr ebx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ebx, eax
mov eax, edx
and eax, 0xff00
shl eax, 8
or ebx, eax
shl edx, 0x18
or ebx, edx
mov dword [esi + 8], ebx
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, ecx
mov eax, dword [ebp - 0x98]
add dword [ebp - 0x94], eax
mov dword [esi + 0xc], edx
add esi, eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], esi
cmp esi, eax
jb 0x1002ed35
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
xor eax, eax
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3c6
mov ecx, edx
mov edx, eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x94]
movzx edi, word [esi]
mov eax, edi
shr eax, 8
and edi, 0xff
shl edi, 8
or eax, edi
mov word [edx], ax
add edx, ebx
add esi, ebx
cmp edx, ecx
jb 0x1002ee3e
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
xor eax, eax
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3c6
mov ecx, eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x94]
mov edx, dword [esi]
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
or eax, edi
shl edx, 0x18
or eax, edx
mov dword [ecx], eax
mov eax, dword [ebp - 4]
add ecx, ebx
add esi, ebx
cmp ecx, eax
jb 0x1002ee9c
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
xor eax, eax
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3c6
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x20], ebx
mov ebx, eax
mov dword [ebp - 0x30], edi
mov edx, eax
mov dword [ebp - 0x90], esi
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x1c]
cmp ebx, 1
je 0x1002f3cd
mov eax, dword [ebp - 0x28]
test eax, eax
jle 0x1002ef6e
xor eax, eax
lea esi, [ebx + ecx]
mov dword [ebp - 0x2c], esi
lea edi, [ebx + edx]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x2c]
movzx ebx, byte [eax + ecx]
sub edi, eax
movzx esi, byte [edi - 1]
xor esi, ebx
xor ebx, esi
mov byte [eax + edx], bl
movzx ebx, byte [edi - 1]
xor ebx, esi
mov esi, dword [ebp - 0x24]
sub esi, eax
mov byte [esi - 1], bl
add eax, 1
mov ebx, dword [ebp - 0x28]
cmp eax, ebx
jl 0x1002ef3c
mov ebx, dword [ebp - 0x98]
mov eax, dword [ebp - 4]
add edx, ebx
add ecx, ebx
cmp edx, eax
jb 0x1002ef1e
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
xor eax, eax
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x1002f119
mov eax, dword [ebp - 0x8c]
test al, 7
jne 0x1002f119
test cl, 7
jne 0x1002f119
mov eax, dword [ebp - 0x98]
cmp eax, 4
je 0x1002f0d0
cmp eax, 8
jne 0x1002f021
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3d7
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x30], edi
mov edi, edx
mov dword [ebp - 0x90], esi
mov esi, eax
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esi], eax
mov dword [esi + 4], edx
add esi, ecx
add ebx, ecx
cmp esi, edi
jb 0x1002eff1
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
mov eax, 1
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
cmp eax, 0x10
jne 0x1002f085
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3d7
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
mov dword [eax], esi
mov dword [eax + 4], edi
mov esi, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov dword [eax + 8], esi
mov dword [eax + 0xc], edi
add eax, ecx
add ebx, ecx
cmp eax, edx
jb 0x1002f049
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
mov eax, 1
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3d7
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0x90], esi
mov esi, eax
movzx eax, word [ecx]
mov word [esi], ax
add esi, edx
add ecx, edx
cmp esi, edi
jb 0x1002f0aa
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
mov eax, 1
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jae 0x1002f3d7
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 4]
mov dword [ebp - 0x90], esi
mov esi, eax
mov eax, dword [ecx]
mov dword [esi], eax
add esi, edx
add ecx, edx
cmp esi, edi
jb 0x1002f0f5
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
mov eax, 1
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
jmp 0x1002f13a
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x1c]
push ebx
push eax
push edx
call fcn.1007f4d4
add esp, 0xc
mov eax, 1
mov edx, ebx
add edx, dword [esi + 0x3c]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xa0]
mov dword [esi + 0x3c], edx
test ecx, ecx
je 0x1002f1fd
test eax, eax
jne 0x1002ec1a
jmp 0x1002e6d5
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x1002f1fd
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x8c]
add dword [ebp - 0x9c], eax
test dl, 3
jne 0x1002f1ea
mov eax, dword [ebp - 0x98]
cmp eax, 4
je 0x1002f1d4
cmp eax, 8
jne 0x1002f1a3
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x1002f3e1
jmp 0x1002e6d5
cmp eax, 0x10
jne 0x1002f1be
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x1002f462
jmp 0x1002e6d5
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x1002f53b
jmp 0x1002e6d5
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x1c]
cmp eax, edx
jb 0x1002f57c
jmp 0x1002e6d5
mov edx, dword [ebp - 0x9c]
cmp eax, edx
jb 0x1002f5d1
jmp 0x1002e6d5
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x1002e6d5
lea eax, [ebp - 0xb0]
push ebx
push esi
push eax
call fcn.10024574
mov dword [ebp - 8], eax
add esp, 0xc
test eax, eax
je 0x1002e6d5
push 0
push 0x5f
call fcn.100149ac
add esp, 8
jmp 0x1002e6d5
mov ebx, dword [ebp - 0x114]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002f2d7
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1002f277
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1002f267
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ecx, byte [esi + 0x12b]
mov edi, ecx
and edi, 0x40
xor edx, edx
test edi, edi
setne dl
movzx edi, byte [esi + 0x12c]
test ecx, 0x80
mov ecx, 2
jne 0x1002f2a5
mov ecx, 0
test edi, 1
mov edi, 4
jne 0x1002f2b7
mov edi, 0
or edx, ecx
or edx, edi
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x114]
mov edx, dword [esi + 0x18]
test edx, edx
je 0x1002f3a4
movzx eax, byte [edx + 0x3c]
test al, 2
je 0x1002f33f
mov eax, 0x43
mov dword [edx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x1002f32a
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x64], edx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov eax, 0x43
mov esp, ebp
pop ebp
ret
movzx ecx, byte [esi + 0x12b]
movzx edi, byte [esi + 0x12c]
mov edx, ecx
and edx, 0x40
xor eax, eax
test edx, edx
setne al
test ecx, 0x80
mov edx, 2
jne 0x1002f36b
mov edx, 0
test edi, 1
mov ecx, 4
jne 0x1002f37d
mov ecx, 0
or eax, edx
or eax, ecx
mov edx, 0x43
push edx
push edx
push eax
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
mov eax, 0x43
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
xor eax, eax
jmp 0x1002f13a
movzx eax, byte [ecx]
mov byte [edx], al
jmp 0x1002ef6e
mov eax, 1
jmp 0x1002f13a
mov dword [ebp - 0x20], ebx
mov ebx, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x98]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
shl edx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, edx
mov dword [ebx], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
and eax, 0xff00
shl eax, 8
or edx, eax
shl ecx, 0x18
or edx, ecx
mov eax, dword [ebp - 0x9c]
mov dword [ebx + 4], edx
add ebx, esi
cmp ebx, eax
jb 0x1002f3f5
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
jmp 0x1002e6d5
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, eax
mov edi, dword [esi]
mov ebx, dword [esi + 4]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [ebp - 0x24], edi
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
and edi, 0xff00
shl edi, 8
or eax, edi
shl edx, 0x18
or eax, edx
mov dword [esi], eax
mov edx, ecx
shr edx, 0x18
mov eax, ecx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ecx
shl ecx, 0x18
and eax, 0xff00
shl eax, 8
or edx, eax
or edx, ecx
mov dword [esi + 4], edx
mov edx, ebx
shr edx, 0x18
mov eax, ebx
and eax, 0xff0000
shr eax, 8
or edx, eax
mov eax, ebx
and eax, 0xff00
shl eax, 8
or edx, eax
shl ebx, 0x18
or edx, ebx
mov dword [esi + 8], edx
mov edx, dword [ebp - 0x24]
mov ecx, edx
shr ecx, 0x18
mov eax, edx
and eax, 0xff0000
shr eax, 8
or ecx, eax
mov eax, edx
shl edx, 0x18
and eax, 0xff00
shl eax, 8
or ecx, eax
or ecx, edx
mov eax, dword [ebp - 0x9c]
mov dword [esi + 0xc], ecx
add esi, dword [ebp - 0x98]
cmp esi, eax
jb 0x1002f470
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
jmp 0x1002e6d5
mov ecx, dword [ebp - 0x98]
mov edx, eax
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, dword [ebp - 0x9c]
movzx edi, word [edx]
mov eax, edi
shr eax, 8
and edi, 0xff
shl edi, 8
or eax, edi
mov word [edx], ax
add edx, ecx
cmp edx, esi
jb 0x1002f552
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
jmp 0x1002e6d5
mov ecx, eax
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x98]
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x90], esi
mov esi, edx
mov edx, dword [ecx]
mov eax, edx
shr eax, 0x18
mov edi, edx
and edi, 0xff0000
shr edi, 8
or eax, edi
mov edi, edx
shl edx, 0x18
and edi, 0xff00
shl edi, 8
or eax, edi
or eax, edx
mov dword [ecx], eax
add ecx, ebx
cmp ecx, esi
jb 0x1002f592
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
jmp 0x1002e6d5
mov edx, dword [ebp - 0x98]
mov ecx, eax
mov dword [ebp - 0x20], ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x30], edi
mov edi, dword [ebp - 0x9c]
mov dword [ebp - 0x90], esi
mov esi, edx
sar eax, 1
test eax, eax
jle 0x1002f63a
mov dword [ebp - 4], eax
xor edx, edx
lea ebx, [ecx + esi]
mov dword [ebp - 0x2c], ebx
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 4]
movzx ebx, byte [edx + ecx]
sub esi, edx
movzx eax, byte [esi - 1]
xor eax, ebx
xor ebx, eax
mov byte [edx + ecx], bl
add edx, 1
xor byte [esi - 1], al
cmp edx, edi
jl 0x1002f605
mov eax, edi
mov edi, dword [ebp - 0x9c]
mov esi, dword [ebp - 0x98]
add ecx, esi
cmp ecx, edi
jb 0x1002f5f6
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x30]
mov esi, dword [ebp - 0x90]
jmp 0x1002e6d5
mov ebx, dword [ebp - 0x114]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002f6ed
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1002f68d
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1002f67d
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ecx, byte [esi + 0x12b]
mov edi, ecx
and edi, 0x40
xor edx, edx
test edi, edi
setne dl
movzx edi, byte [esi + 0x12c]
test ecx, 0x80
mov ecx, 2
jne 0x1002f6bb
mov ecx, 0
test edi, 1
mov edi, 4
jne 0x1002f6cd
mov edi, 0
or edx, ecx
or edx, edi
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov ebx, dword [ebp - 0x114]
mov ecx, dword [ebp - 0xa8]
cmp ecx, 1
jne 0x1002e939
mov eax, dword [esi + 0x54]
test eax, eax
je 0x1002f776
movsx edx, byte [esi + 0x11f]
add edx, 0xfffffffb
cmp edx, 0xc
ja case.default.0x1002f743
mov edx, dword [edx*4 + 0x100bded0]
jmp edx
mov edx, dword [esi + 0x90]
mov ecx, dword [esi + 0x94]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x1002f776
mov edx, dword [esi + 0x90]
mov dword [eax], edx
jmp 0x1002f776
mov edx, dword [esi + 0x90]
mov word [eax], dx
jmp 0x1002f776
movzx edx, byte [esi + 0x90]
mov byte [eax], dl
push dword [esi + 0xc8]
and byte [esi + 0x12b], 0x3f
and byte [esi + 0x12c], 0xf7
and byte [esi + 0x12e], 0xfe
call fcn.100260c0
pop ecx
test eax, eax
je 0x1002f83b
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002f862
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1002f7db
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1002f7cb
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ecx, byte [esi + 0x12b]
mov edi, ecx
and edi, 0x40
xor edx, edx
test edi, edi
setne dl
movzx edi, byte [esi + 0x12c]
test ecx, 0x80
mov ecx, 2
jne 0x1002f809
mov ecx, 0
test edi, 1
mov edi, 4
jne 0x1002f81b
mov edi, 0
or edx, ecx
or edx, edi
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x120]
mov dword [edx + 4], 0
jmp 0x1002e939
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov eax, 0x30
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 0
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002f898
mov ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1002e7a7
mov ebx, dword [ebp - 0x114]
jmp 0x1002f719
movzx edx, byte [esi + 0x12f]
test dl, 4
je 0x1002f898
mov ecx, 1
mov dword [ebp - 0xc], ecx
jmp 0x1002e7a7
mov ebx, dword [ebp - 0x114]
mov ecx, dword [esi + 0x18]
test ecx, ecx
je 0x1002f95e
movzx edx, byte [ecx + 0x3c]
test dl, 2
je 0x1002f8fe
mov dword [ecx + 0x30], eax
mov edx, dword [esi + 0x18]
mov dword [edx + 0x34], eax
mov edx, dword [esi + 0x64]
test edx, edx
je 0x1002f8ee
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x64], ecx
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push eax
push eax
movzx ecx, byte [esi + 0x12b]
mov edi, ecx
and edi, 0x40
xor edx, edx
test edi, edi
setne dl
movzx edi, byte [esi + 0x12c]
test ecx, 0x80
mov ecx, 2
jne 0x1002f92c
mov ecx, 0
test edi, 1
mov edi, 4
jne 0x1002f93e
mov edi, 0
or edx, ecx
or edx, edi
push edx
push 0xffffffffffffffff
push esi
call fcn.10077ea0
add esp, 0x14
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret
push esi
push eax
push eax
push 1
call fcn.10014254
add esp, 0x10
mov esi, dword [ebp - 0x11c]
mov edi, dword [ebp - 0x118]
mov esp, ebp
pop ebp
ret