Function at 0x100864e1
Capabilities:
Encode data using xor

Disassembly:
push 0x510
mov eax, 0x100bc192
call fcn.100956bd
mov edi, ecx
mov dword [ebp - 0x4c8], edi
lea eax, [ebp - 0x4d8]
mov ecx, 0x1011cc48
push eax
push edi
push dword [edi + 0x828]
call fcn.10092f2a
cmp eax, 0xffffffff
jne 0x10086534
cmp dword [ebp - 0x4d8], 0x2746
jne 0x10086525
xor eax, eax
jmp 0x10086534
cmp dword [ebp - 0x4d8], 0
je 0x10086534
cmp byte [edi + 4], 0
je 0x10086580
cmp byte [edi + 4], 0
jne 0x1008658f
test eax, eax
jg 0x100864f8
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x4b0], ecx
lea ecx, [edi + 0x7f8]
movlpd qword [ebp - 0x4d4], xmm0
call fcn.1008b400
mov esi, eax
test esi, esi
je 0x10086683
mov edx, dword [ebp - 0x4d0]
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4ac], eax
jmp 0x1008659d
mov eax, dword [edi]
mov ecx, edi
push 0
push 0
mov byte [edi + 4], 1
call dword [eax + 0x24]
xor al, al
call fcn.1009567b
ret
mov eax, dword [ebp - 0x4ac]
cmp dword [esi + 0x34], 0
jne 0x10086631
or eax, edx
jne 0x100865be
call fcn.1007ece5
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4b4], edx
jmp 0x100865c4
mov eax, dword [ebp - 0x4ac]
push edx
push eax
movzx eax, byte [esi + 0x18]
mov ecx, edi
push 1
push eax
push dword [esi + 0x14]
movzx eax, byte [esi + 0xc]
push dword [esi + 0x10]
push eax
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [esi + 0x30]
call fcn.10087a87
test al, al
jne 0x100865fa
push 1
push dword [esi + 0x30]
call fcn.10095659
pop ecx
pop ecx
cmp dword [esi + 0x1c], 0
je 0x10086647
push 0x100d9350
lea ecx, [esi + 0x10]
call fcn.10080145
test al, al
je 0x10086647
push 1
push 1
push dword [esi + 0x14]
mov ecx, edi
push dword [esi + 0x10]
call fcn.100859ec
test eax, eax
je 0x10086647
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x83c], ecx
jmp 0x10086647
movzx eax, byte [esi + 0xc]
mov ecx, edi
push eax
push 1
push 0
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.1008788c
mov eax, dword [edi + 0x800]
lea ecx, [edi + 0x7f8]
inc dword [edi + 0x808]
mov byte [eax + 0x38], 0
mov eax, dword [edi + 0x800]
mov eax, dword [eax + 0x3c]
mov dword [edi + 0x800], eax
call fcn.1008b400
mov edx, dword [ebp - 0x4b4]
mov esi, eax
test esi, esi
jne 0x10086597
jmp 0x1008669b
mov eax, dword [ebp - 0x4d0]
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x4ac], eax
lea ecx, [edi + 0x3c8]
call fcn.1008b41a
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
test ecx, ecx
je 0x10086870
mov eax, dword [ebp - 0x4ac]
or eax, dword [ebp - 0x4b4]
jne 0x100866f1
call fcn.1007ece5
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x4ac], ecx
mov dword [ebp - 0x4b4], eax
call fcn.100961d0
mov dword [ebp - 0x4b0], eax
jmp 0x100866f7
mov eax, dword [ebp - 0x4b0]
cmp dword [esi + 8], eax
jae 0x1008684b
mov al, byte [esi + 0xc]
mov ecx, esi
push 0x100d9350
mov byte [ebp - 0x499], al
call fcn.10080128
mov cl, byte [ebp - 0x499]
dec al
neg al
sbb al, al
inc al
mov byte [ebp - 0x494], al
cmp cl, 6
je 0x100867b4
test al, al
jne 0x100867b4
mov eax, dword [ebp - 0x4b0]
xor ecx, ecx
inc byte [esi + 0xc]
add eax, 0x3e8
mov dword [esi + 8], eax
mov byte [ebp - 0x4a8], 0x18
mov dword [ebp - 0x4c4], ecx
cmp dword [edi + 0x3c0], ecx
jbe 0x1008678f
mov eax, dword [edi + 0x3bc]
lea edx, [ebp - 0x4a8]
push dword [esi + 4]
push dword [esi]
mov ecx, dword [eax + ecx*4]
push 0x18
push edx
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov ecx, dword [ebp - 0x4c4]
inc ecx
mov dword [ebp - 0x4c4], ecx
cmp ecx, dword [edi + 0x3c0]
jb 0x1008675e
movzx eax, word [esi + 4]
mov ecx, 0x1011cc48
push eax
push dword [esi]
lea eax, [ebp - 0x4a8]
push 3
push eax
push dword [edi + 0x828]
call fcn.10093081
jmp 0x1008684b
cmp dword [esi + 0x10], 0
je 0x100867d3
push dword [esi + 0x10]
call fcn.10095f80
and dword [esi + 0x10], 0
mov al, byte [ebp - 0x494]
pop ecx
mov cl, byte [ebp - 0x499]
cmp cl, 6
jne 0x10086817
test al, al
jne 0x10086817
cmp dword [esi + 0x118], 1
jne 0x10086817
push 1
call fcn.10087e3d
pop ecx
push eax
mov ecx, dword [eax + 0x14]
mov byte [ecx], 0x1d
mov dword [eax + 0x10], 8
mov ecx, dword [esi]
mov dword [eax + 4], ecx
mov cx, word [esi + 4]
mov word [eax + 8], cx
mov ecx, 0xffff
mov word [eax], cx
mov ecx, edi
call fcn.1008afea
cmp esi, dword [ebp - 0x4b8]
jne 0x1008683f
lea esi, [edi + 0x3c8]
mov ecx, esi
call fcn.1008b43a
mov ecx, esi
call fcn.1008b41a
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
jmp 0x1008685e
or dword [esi], 0xffffffff
mov eax, 0xffff
mov word [esi + 4], ax
lea ecx, [edi + 0x3c8]
call fcn.1008b41a
mov ecx, dword [ebp - 0x4b8]
mov esi, eax
test esi, esi
jne 0x100866b8
test ecx, ecx
je 0x10086870
mov dword [edi + 0x3c8], ecx
xor ecx, ecx
xor eax, eax
cmp cx, word [edi + 8]
jmp 0x10087639
imul esi, eax, 0x840
add esi, dword [edi + 0x340]
mov dword [ebp - 0x4c4], esi
cmp byte [esi], 0
je 0x1008762c
mov eax, dword [esi + 4]
mov dword [ebp - 0x4a4], eax
mov ax, word [esi + 8]
mov word [ebp - 0x4a0], ax
mov eax, dword [ebp - 0x4ac]
or eax, dword [ebp - 0x4b4]
jne 0x100868e5
call fcn.1007ece5
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x4ac], ecx
mov dword [ebp - 0x4b4], eax
call fcn.100961d0
mov dword [ebp - 0x4b0], eax
jmp 0x100868eb
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [esi + 0x700]
cmp eax, ecx
jbe 0x1008695a
sub eax, ecx
cmp eax, 0x1388
jbe 0x1008695a
cmp dword [esi + 0x83c], 8
jne 0x1008695a
lea ecx, [esi + 0x18]
call fcn.1008ca84
xor ecx, ecx
cmp dword [eax + 0x60], ecx
jne 0x1008695a
push dword [ebp - 0x4b4]
lea eax, [ebp - 0x494]
mov byte [ebp - 0x494], 0x17
push dword [ebp - 0x4ac]
push ecx
push ecx
push dword [esi + 8]
push dword [esi + 4]
push ecx
push 8
push 3
push 8
push eax
mov ecx, edi
call fcn.10087a87
lea ecx, [esi + 0x18]
call fcn.1008bbc2
add eax, dword [ebp - 0x4b0]
mov dword [esi + 0x700], eax
lea eax, [edi + 0x3bc]
push eax
push dword [ebp - 0x4b4]
lea ecx, [esi + 0x18]
push dword [ebp - 0x4ac]
mov dword [ebp - 0x4d0], ecx
push dword [edi + 0x81c]
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
push dword [edi + 0x828]
call fcn.1008c400
lea ecx, [esi + 0x18]
call fcn.1008ca21
test al, al
jne 0x100875a6
mov eax, dword [esi + 0x83c]
cmp eax, 1
je 0x100869b3
cmp eax, 2
jne 0x100869c3
lea ecx, [esi + 0x18]
call fcn.1008cb15
test al, al
je 0x100875a6
cmp dword [esi + 0x83c], 3
jne 0x100869dc
lea ecx, [esi + 0x18]
call fcn.1008cb66
test al, al
je 0x100875a6
mov eax, dword [esi + 0x83c]
cmp eax, 4
je 0x100869f6
cmp eax, 5
je 0x100869f6
cmp eax, 6
je 0x100869f6
cmp eax, 7
jne 0x10086a13
mov ecx, dword [esi + 0x818]
mov eax, dword [ebp - 0x4b0]
cmp eax, ecx
jbe 0x10086a13
sub eax, ecx
cmp eax, 0x2710
ja 0x100875a6
lea ecx, [esi + 0x18]
call fcn.1008ca1a
test al, al
je 0x10086a5e
push 1
call fcn.10087e3d
pop ecx
push eax
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x10], 8
mov byte [ecx], 0x26
mov ecx, dword [ebp - 0x4a4]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x4a0]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x4a8]
mov word [eax], cx
mov ecx, edi
call fcn.1008afea
jmp 0x1008762c
cmp dword [esi + 0x83c], 8
jne 0x10086aa9
mov eax, dword [ebp - 0x4b0]
cmp eax, dword [esi + 0x6fc]
jbe 0x10086aa9
cmp byte [edi + 6], 0
jne 0x10086a89
mov ecx, 0xffff
cmp word [esi + 0x6f8], cx
jne 0x10086aa9
add eax, 0x1388
mov ecx, edi
push 1
mov dword [esi + 0x6fc], eax
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.1008774a
lea eax, [ebp - 0x498]
push eax
lea ecx, [esi + 0x18]
call fcn.1008c23d
jmp 0x10087593
add eax, 7
sar eax, 3
cmp dword [edi + 0x7e0], 0
mov dword [ebp - 0x4bc], eax
je 0x10086bfe
push 0x240
lea ecx, [ebp - 0x154]
call fcn.1007a21e
and dword [ebp - 4], 0
lea ecx, [ebp - 0x154]
call fcn.1007a2db
push dword [ebp - 0x4bc]
lea ecx, [ebp - 0x154]
push dword [ebp - 0x498]
call fcn.1007a5ba
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x4c0], edx
lea ecx, [edx + 7]
sar ecx, 3
add dword [edi + 0x7ec], ecx
test edx, edx
je 0x10086be0
push ecx
call fcn.10095f77
mov ecx, dword [ebp - 0x154]
mov esi, eax
add ecx, 7
sar ecx, 3
push ecx
push dword [ebp - 0x148]
push esi
call fcn.10097cf0
add esp, 0x10
lea ecx, [ebp - 0x154]
call fcn.1007a2db
mov ecx, dword [edi + 0x7e0]
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x4c0]
push esi
call fcn.1007bf56
mov ecx, dword [ebp - 0x154]
push esi
lea ecx, [ecx + 7]
sar ecx, 3
add dword [edi + 0x7f4], ecx
call fcn.10095f80
mov esi, dword [ebp - 0x154]
pop ecx
lea esi, [esi + 7]
sar esi, 3
mov dword [ebp - 0x4c0], esi
cmp esi, dword [ebp - 0x4bc]
jle 0x10086bc2
push dword [ebp - 0x498]
call fcn.10095f80
push esi
call fcn.10095f77
pop ecx
pop ecx
mov dword [ebp - 0x498], eax
jmp 0x10086bc8
mov eax, dword [ebp - 0x498]
push esi
push dword [ebp - 0x148]
push eax
call fcn.10097cf0
mov esi, dword [ebp - 0x4c4]
add esp, 0xc
jmp 0x10086be7
and dword [ebp - 0x4c0], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x154]
call fcn.1007a2c2
mov eax, dword [ebp - 0x4c0]
jmp 0x10086c04
mov dword [ebp - 0x4c0], eax
cmp dword [esi + 0x83c], 6
jne 0x10086c88
mov ecx, dword [ebp - 0x498]
cmp byte [ecx], 0xb
jne 0x10086c33
push eax
push ecx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.10085aa8
jmp 0x10087521
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008788c
mov eax, dword [edi]
lea ecx, [esi + 0x18]
mov edi, dword [eax + 0x64]
call fcn.1008bbc2
push dword [ebp - 0x4a0]
mov esi, eax
mov eax, dword [ebp - 0x4c8]
push dword [ebp - 0x4a4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb8]
mov ecx, eax
call edx
mov ecx, dword [ebp - 0x4c8]
push esi
push eax
call edi
jmp 0x10087521
mov edx, dword [ebp - 0x498]
mov cl, byte [edx]
cmp cl, 0xb
jne 0x10086cc3
cmp dword [esi + 0x83c], 8
je 0x100872dc
push eax
push edx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.10085aa8
mov edx, dword [ebp - 0x498]
jmp 0x100872dc
cmp cl, 0x1e
jne 0x10086de5
cmp eax, 7
jne 0x1008705d
cmp dword [esi + 0x83c], 5
je 0x10086d00
cmp dword [esi + 0x83c], eax
je 0x10086d00
lea eax, [edi + 0x234]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.10080128
test al, al
je 0x10087521
push 1
mov dword [esi + 0x83c], 8
mov ecx, edi
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.1008774a
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.10087668
push 0
push 7
push dword [ebp - 0x498]
lea ecx, [ebp - 0x154]
call fcn.1007a25b
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 1
call fcn.1007a4cd
push 1
push 0x20
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007a643
push 1
push 0x10
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007a643
mov eax, dword [ebp - 0x4f4]
mov dword [esi + 0xc], eax
mov ax, word [ebp - 0x4f0]
mov word [esi + 0x10], ax
push dword [ebp - 0x498]
push 7
call fcn.10087e5b
pop ecx
pop ecx
mov ecx, dword [ebp - 0x4b8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x4a4]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x4a0]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x4a8]
mov word [eax], cx
mov ecx, edi
push eax
call fcn.1008afea
lea ecx, [ebp - 0x154]
jmp 0x100870be
cmp cl, 9
jne 0x10086f45
cmp eax, 9
jne 0x1008705d
push 0
push eax
push edx
lea ecx, [ebp - 0x154]
call fcn.1007a25b
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 2
call fcn.1007a4cd
push 1
push 0x20
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007a643
push 1
push 0x20
lea eax, [ebp - 0x4e0]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007a643
call fcn.1007ece5
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x4ac], ecx
mov dword [ebp - 0x4b4], eax
call fcn.100961d0
mov dword [ebp - 0x4b0], eax
cmp eax, dword [ebp - 0x4cc]
jbe 0x10086e81
mov edx, eax
sub edx, dword [ebp - 0x4cc]
jmp 0x10086e83
xor edx, edx
mov ecx, dword [esi + 0x6f4]
movzx eax, word [esi + ecx*8 + 0x6cc]
test eax, eax
je 0x10086eac
imul eax, eax, 3
cmp edx, eax
jae 0x10086f34
cmp edx, 0x4b0
jae 0x10086f34
movzx edi, dx
mov word [esi + ecx*8 + 0x6cc], di
mov eax, dword [ebp - 0x4cc]
add eax, dword [ebp - 0x4b0]
mov ecx, dword [ebp - 0x4e0]
shr eax, 1
sub ecx, eax
mov eax, dword [esi + 0x6f4]
mov dword [esi + eax*8 + 0x6d0], ecx
mov ecx, 0xffff
movzx eax, word [esi + 0x6f8]
cmp ax, cx
je 0x10086eef
cmp eax, edx
jle 0x10086ef6
mov word [esi + 0x6f8], di
cmp edx, 0x2710
jb 0x10086f15
push 0x11e6
push str.C:UserspetroDesktopQuinceSAMP_API_ONE_HEADERSAMPRakNetRakPeer.cpp
push str.ping___10000
call fcn.100aa419
add esp, 0xc
push edi
lea ecx, [esi + 0x18]
call fcn.1008ca30
inc dword [esi + 0x6f4]
cmp dword [esi + 0x6f4], 5
jne 0x10086f34
and dword [esi + 0x6f4], 0
push dword [ebp - 0x498]
call fcn.10095f80
pop ecx
jmp 0x10086dda
cmp cl, 6
jne 0x10087049
cmp eax, 5
jne 0x1008705d
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.1007a25b
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 3
call fcn.1007a4cd
push 1
push 0x20
lea eax, [ebp - 0x4e4]
push eax
lea ecx, [ebp - 0x268]
call fcn.1007a643
lea ecx, [ebp - 0x154]
call fcn.1007a203
push 1
push 8
lea eax, [ebp - 0x494]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x154]
mov byte [ebp - 0x494], 9
call fcn.1007a520
call fcn.1007ec94
mov esi, eax
lea ecx, [ebp - 0x154]
mov eax, dword [ebp - 0x4e4]
push 1
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x4bc]
push 0x20
push eax
mov dword [ebp - 0x4b0], esi
call fcn.1007a520
push 1
push 0x20
lea eax, [ebp - 0x4bc]
mov dword [ebp - 0x4bc], esi
push eax
lea ecx, [ebp - 0x154]
call fcn.1007a520
xor eax, eax
mov ecx, edi
push eax
push esi
push eax
push eax
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
push eax
push 6
push eax
push dword [ebp - 0x154]
push dword [ebp - 0x148]
call fcn.10087a87
push dword [ebp - 0x498]
call fcn.10095f80
pop ecx
lea ecx, [ebp - 0x154]
call fcn.1007a2c2
jmp 0x100870b8
cmp cl, 0x20
jne 0x1008705d
mov dword [esi + 0x83c], 3
jmp 0x10087521
cmp cl, 0x11
jne 0x100870cc
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.1007a25b
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 5
call fcn.1007a4cd
push 1
push 8
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x268]
call fcn.1007a8b8
push dword [ebp - 0x4e8]
lea ecx, [esi + 0x830]
call fcn.10091712
push dword [ebp - 0x498]
call fcn.10095f80
pop ecx
lea ecx, [ebp - 0x268]
or dword [ebp - 4], 0xffffffff
call fcn.1007a2c2
jmp 0x10087575
cmp cl, 0xa
jne 0x100870eb
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.10087668
jmp 0x10087521
cmp cl, 0x29
jne 0x10087127
lea ecx, [esi + 0x704]
call fcn.1007a2db
mov eax, dword [ebp - 0x4c0]
lea ecx, [esi + 0x704]
dec eax
push eax
mov eax, dword [ebp - 0x498]
inc eax
push eax
call fcn.1007a2e3
push dword [ebp - 0x498]
push dword [ebp - 0x4c0]
jmp 0x10087540
cmp cl, 0xf
jne 0x10087143
cmp eax, 0x39
jne 0x1008752f
push edx
push esi
mov ecx, edi
call fcn.1008630c
jmp 0x10087521
cmp cl, 0x10
jne 0x100872ce
cmp eax, 0x35
jne 0x1008752f
lea ecx, [ebp - 0xf4]
call fcn.100917aa
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], 6
call fcn.100917c7
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
push 0x14
lea eax, [edi + 0x9ac]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
lea ecx, [ebp - 0xf4]
call fcn.1009197c
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.10091bc1
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x100871dd
inc edx
cmp edx, 5
jne 0x100871cc
jmp 0x10087251
lea ecx, [ebp - 0xf4]
call fcn.100917c7
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
push 0x14
lea eax, [edi + 0x9c0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.100917f3
lea ecx, [ebp - 0xf4]
call fcn.1009197c
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.10091bc1
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x100872ae
inc edx
cmp edx, 5
jne 0x10087242
mov esi, dword [ebp - 0x498]
lea edi, [ebp - 0x51c]
push 8
pop ecx
add esi, 0x15
lea eax, [ebp - 0x40]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x51c]
push eax
lea ecx, [edi + 0x84c]
call fcn.1008b63b
mov edx, dword [ebp - 0x498]
xor ecx, ecx
mov al, byte [edx + ecx + 1]
xor al, byte [ebp + ecx - 0x40]
mov byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0x10
jl 0x10087289
push 1
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
push dword [ebp - 0x4c4]
call fcn.10085b4e
push dword [ebp - 0x498]
call fcn.10095f80
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0xf4]
call fcn.100917bc
jmp 0x10087575
cmp cl, 0x17
jne 0x100872e2
cmp eax, 1
jne 0x1008752f
push edx
jmp 0x10087527
cmp cl, 0x22
jne 0x1008752f
cmp eax, 0xd
jne 0x1008752f
mov eax, dword [esi + 0x83c]
cmp eax, 5
je 0x10087311
cmp eax, 4
je 0x10087311
cmp byte [edi + 0x9d4], 0
jne 0x10087311
xor cl, cl
jmp 0x1008731e
mov cl, 1
mov byte [ebp - 0x499], cl
cmp eax, 5
je 0x10087325
mov byte [ebp - 0x499], 0
push 0
test cl, cl
je 0x1008750c
push 0xd
push edx
lea ecx, [ebp - 0x490]
call fcn.1007a25b
push 8
lea ecx, [ebp - 0x490]
mov dword [ebp - 4], 7
call fcn.1007a4cd
push 1
push 0x20
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007a643
push 1
push 0x10
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007a643
push 1
push 0x10
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007a643
cmp byte [ebp - 0x499], 0
mov eax, dword [ebp - 0x4fc]
mov dword [esi + 0xc], eax
mov ax, word [ebp - 0x4f8]
mov word [esi + 0x10], ax
mov dword [esi + 0x83c], 8
jne 0x100873d6
cmp byte [esi + 0x82c], 0
lea ecx, [esi + 0x18]
je 0x100873cf
lea eax, [esi + 0x81c]
push eax
jmp 0x100873d1
push 0
call fcn.1008bb95
push dword [ebp - 0x498]
push 0xd
call fcn.10087e5b
mov esi, eax
pop ecx
pop ecx
push 1
mov dword [esi + 0x10], 0x68
mov ecx, dword [ebp - 0x4a4]
mov dword [esi + 4], ecx
mov cx, word [ebp - 0x4a0]
mov word [esi + 8], cx
mov ecx, edi
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.1008586d
push esi
mov ecx, edi
mov word [esi], ax
call fcn.1008afea
push 7
lea ecx, [ebp - 0x37c]
call fcn.1007a21e
push 1
push 8
lea eax, [ebp - 0x494]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x37c]
mov byte [ebp - 0x494], 0x1e
call fcn.1007a520
mov eax, dword [ebp - 0x4a4]
lea ecx, [ebp - 0x37c]
push 1
mov dword [ebp - 0x4bc], eax
lea eax, [ebp - 0x4bc]
push 0x20
push eax
call fcn.1007a520
movzx eax, word [ebp - 0x4a0]
lea ecx, [ebp - 0x37c]
push 1
mov dword [ebp - 0x4ec], eax
lea eax, [ebp - 0x4ec]
push 0x10
push eax
call fcn.1007a520
call fcn.1007ec94
xor ecx, ecx
push ecx
push eax
push ecx
push ecx
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
push ecx
push 8
push ecx
push dword [ebp - 0x37c]
mov ecx, edi
push dword [ebp - 0x370]
call fcn.10087a87
cmp byte [ebp - 0x499], 0
jne 0x100874f6
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008774a
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.10087668
lea ecx, [ebp - 0x37c]
call fcn.1007a2c2
lea ecx, [ebp - 0x490]
jmp 0x100870be
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.10085c68
push dword [ebp - 0x498]
call fcn.10095f80
pop ecx
jmp 0x10087575
cmp eax, 2
jbe 0x10087539
cmp cl, 0xc
je 0x1008753e
cmp cl, 0x14
jb 0x10087575
push edx
push eax
call fcn.10087e5b
pop ecx
pop ecx
mov ecx, dword [ebp - 0x4b8]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x4a4]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x4a0]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x4a8]
mov word [eax], cx
mov ecx, edi
push eax
call fcn.1008afea
mov ecx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x498]
push eax
call fcn.1008c23d
mov edi, dword [ebp - 0x4c8]
mov esi, dword [ebp - 0x4c4]
mov dword [ebp - 0x4b8], eax
test eax, eax
jg 0x10086abd
jmp 0x1008762c
mov eax, dword [esi + 0x83c]
cmp eax, 8
je 0x100875c0
cmp eax, 4
je 0x100875c0
cmp eax, 1
je 0x100875c0
cmp eax, 3
jne 0x10087613
push 1
call fcn.10087e3d
pop ecx
mov ecx, eax
mov eax, dword [esi + 0x83c]
mov edx, dword [ecx + 0x14]
cmp eax, 4
jne 0x100875dd
mov byte [edx], 0x1d
jmp 0x100875e7
cmp eax, 8
sete al
add al, 0x20
mov byte [edx], al
mov dword [ecx + 0x10], 8
mov eax, dword [ebp - 0x4a4]
mov dword [ecx + 4], eax
mov ax, word [ebp - 0x4a0]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x4a8]
mov word [ecx], ax
push ecx
mov ecx, edi
call fcn.1008afea
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008788c
mov eax, dword [ebp - 0x4a8]
movzx ecx, word [edi + 8]
inc eax
cmp eax, ecx
mov dword [ebp - 0x4a8], eax
jb 0x1008687d
mov al, 1
jmp 0x10086591