Function at 0x1008217d
Capabilities:
Encode data using xor

Disassembly:
push 0x510
mov eax, 0x100b6e5b
call fcn.10090b8d
mov edi, ecx
mov dword [ebp - 0x4c8], edi
lea eax, [ebp - 0x4d8]
mov ecx, 0x10116b10
push eax
push edi
push dword [edi + 0x828]
call fcn.1008f17f
cmp eax, 0xffffffff
jne 0x100821d0
cmp dword [ebp - 0x4d8], 0x2746
jne 0x100821c1
xor eax, eax
jmp 0x100821d0
cmp dword [ebp - 0x4d8], 0
je 0x100821d0
cmp byte [edi + 4], 0
je 0x1008221c
cmp byte [edi + 4], 0
jne 0x1008222b
test eax, eax
jg 0x10082194
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x4b0], ecx
lea ecx, [edi + 0x7f8]
movlpd qword [ebp - 0x4d4], xmm0
call fcn.100870b8
mov esi, eax
test esi, esi
je 0x1008231f
mov edx, dword [ebp - 0x4d0]
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4ac], eax
jmp 0x10082239
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.10090b4b
ret
mov eax, dword [ebp - 0x4ac]
cmp dword [esi + 0x34], 0
jne 0x100822cd
or eax, edx
jne 0x1008225a
call fcn.1007a995
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4b4], edx
jmp 0x10082260
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.1008373c
test al, al
jne 0x10082296
push 1
push dword [esi + 0x30]
call fcn.10090b1b
pop ecx
pop ecx
cmp dword [esi + 0x1c], 0
je 0x100822e3
push 0x100d38e0
lea ecx, [esi + 0x10]
call fcn.1007bdf5
test al, al
je 0x100822e3
push 1
push 1
push dword [esi + 0x14]
mov ecx, edi
push dword [esi + 0x10]
call fcn.10081688
test eax, eax
je 0x100822e3
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x83c], ecx
jmp 0x100822e3
movzx eax, byte [esi + 0xc]
mov ecx, edi
push eax
push 1
push 0
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.1008352f
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.100870b8
mov edx, dword [ebp - 0x4b4]
mov esi, eax
test esi, esi
jne 0x10082233
jmp 0x10082337
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.100870d2
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
test ecx, ecx
je 0x10082504
mov eax, dword [ebp - 0x4ac]
or eax, dword [ebp - 0x4b4]
jne 0x1008238d
call fcn.1007a995
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.10091610
mov dword [ebp - 0x4b0], eax
jmp 0x10082393
mov eax, dword [ebp - 0x4b0]
cmp dword [esi + 8], eax
jae 0x100824df
mov al, byte [esi + 0xc]
mov ecx, esi
push 0x100d38e0
mov byte [ebp - 0x499], al
call fcn.1007bdd8
mov cl, byte [ebp - 0x499]
mov byte [ebp - 0x494], al
cmp cl, 6
je 0x10082448
test al, al
jne 0x10082448
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 0x10082423
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 0x100823f2
movzx eax, word [esi + 4]
mov ecx, 0x10116b10
push eax
push dword [esi]
lea eax, [ebp - 0x4a8]
push 3
push eax
push dword [edi + 0x828]
call fcn.1008f2d6
jmp 0x100824df
cmp dword [esi + 0x10], 0
je 0x10082467
push dword [esi + 0x10]
call fcn.100913ad
and dword [esi + 0x10], 0
mov al, byte [ebp - 0x494]
pop ecx
mov cl, byte [ebp - 0x499]
cmp cl, 6
jne 0x100824ab
test al, al
jne 0x100824ab
cmp dword [esi + 0x118], 1
jne 0x100824ab
push 1
call fcn.10083af2
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.10086ca2
cmp esi, dword [ebp - 0x4b8]
jne 0x100824d3
lea esi, [edi + 0x3c8]
mov ecx, esi
call fcn.100870f2
mov ecx, esi
call fcn.100870d2
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
jmp 0x100824f2
or dword [esi], 0xffffffff
mov eax, 0xffff
mov word [esi + 4], ax
lea ecx, [edi + 0x3c8]
call fcn.100870d2
mov ecx, dword [ebp - 0x4b8]
mov esi, eax
test esi, esi
jne 0x10082354
test ecx, ecx
je 0x10082504
mov dword [edi + 0x3c8], ecx
xor ecx, ecx
xor eax, eax
cmp cx, word [edi + 8]
jmp 0x100832dc
imul esi, eax, 0x840
add esi, dword [edi + 0x340]
mov dword [ebp - 0x4c4], esi
cmp byte [esi], 0
je 0x100832cf
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 0x10082579
call fcn.1007a995
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.10091610
mov dword [ebp - 0x4b0], eax
jmp 0x1008257f
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [esi + 0x700]
cmp eax, ecx
jbe 0x100825ee
sub eax, ecx
cmp eax, 0x1388
jbe 0x100825ee
cmp dword [esi + 0x83c], 8
jne 0x100825ee
lea ecx, [esi + 0x18]
call fcn.10088770
xor ecx, ecx
cmp dword [eax + 0x60], ecx
jne 0x100825ee
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.1008373c
lea ecx, [esi + 0x18]
call fcn.1008787a
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]
push dword [edi + 0x81c]
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
push dword [edi + 0x828]
call fcn.100880e6
lea ecx, [esi + 0x18]
call fcn.1008871a
test al, al
jne 0x10083249
mov eax, dword [esi + 0x83c]
cmp eax, 1
je 0x10082641
cmp eax, 2
jne 0x10082651
lea ecx, [esi + 0x18]
call fcn.10088801
test al, al
je 0x10083249
cmp dword [esi + 0x83c], 3
jne 0x1008266a
lea ecx, [esi + 0x18]
call fcn.10088852
test al, al
je 0x10083249
mov eax, dword [esi + 0x83c]
cmp eax, 4
je 0x10082684
cmp eax, 5
je 0x10082684
cmp eax, 6
je 0x10082684
cmp eax, 7
jne 0x100826a1
mov ecx, dword [esi + 0x818]
mov eax, dword [ebp - 0x4b0]
cmp eax, ecx
jbe 0x100826a1
sub eax, ecx
cmp eax, 0x2710
ja 0x10083249
lea ecx, [esi + 0x18]
call fcn.10088713
test al, al
je 0x100826ec
push 1
call fcn.10083af2
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.10086ca2
jmp 0x100832cf
cmp dword [esi + 0x83c], 8
jne 0x10082737
mov eax, dword [ebp - 0x4b0]
cmp eax, dword [esi + 0x6fc]
jbe 0x10082737
cmp byte [edi + 6], 0
jne 0x10082717
mov ecx, 0xffff
cmp word [esi + 0x6f8], cx
jne 0x10082737
add eax, 0x1388
mov ecx, edi
push 1
mov dword [esi + 0x6fc], eax
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.100833ed
lea eax, [ebp - 0x498]
lea ecx, [esi + 0x18]
push eax
call fcn.10087f13
mov dword [ebp - 0x4b8], eax
test eax, eax
jle 0x100832cf
lea ecx, [esi + 0x18]
mov dword [ebp - 0x4d0], ecx
add eax, 7
sar eax, 3
cmp dword [edi + 0x7e0], 0
mov dword [ebp - 0x4bc], eax
je 0x1008289e
push 0x240
lea ecx, [ebp - 0x154]
call fcn.10075e1c
and dword [ebp - 4], 0
lea ecx, [ebp - 0x154]
call fcn.10075ed9
push dword [ebp - 0x4bc]
lea ecx, [ebp - 0x154]
push dword [ebp - 0x498]
call fcn.100761c4
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 0x10082880
push ecx
call fcn.100913a4
mov ecx, dword [ebp - 0x154]
mov esi, eax
add ecx, 7
sar ecx, 3
push ecx
push dword [ebp - 0x148]
push esi
call fcn.10093600
add esp, 0x10
lea ecx, [ebp - 0x154]
call fcn.10075ed9
mov ecx, dword [edi + 0x7e0]
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x4c0]
push esi
call fcn.10077b61
mov ecx, dword [ebp - 0x154]
push esi
lea ecx, [ecx + 7]
sar ecx, 3
add dword [edi + 0x7f4], ecx
call fcn.100913ad
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 0x10082862
push dword [ebp - 0x498]
call fcn.100913ad
push esi
call fcn.100913a4
pop ecx
pop ecx
mov dword [ebp - 0x498], eax
jmp 0x10082868
mov eax, dword [ebp - 0x498]
push esi
push dword [ebp - 0x148]
push eax
call fcn.10093600
mov esi, dword [ebp - 0x4c4]
add esp, 0xc
jmp 0x10082887
and dword [ebp - 0x4c0], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x154]
call fcn.10075ec0
mov eax, dword [ebp - 0x4c0]
jmp 0x100828a4
mov dword [ebp - 0x4c0], eax
cmp dword [esi + 0x83c], 6
jne 0x10082928
mov ecx, dword [ebp - 0x498]
cmp byte [ecx], 0xb
jne 0x100828d3
push eax
push ecx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.10081744
jmp 0x100831c4
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008352f
mov eax, dword [edi]
lea ecx, [esi + 0x18]
mov edi, dword [eax + 0x64]
call fcn.1008787a
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 0x100831c4
mov edx, dword [ebp - 0x498]
mov cl, byte [edx]
cmp cl, 0xb
jne 0x10082963
cmp dword [esi + 0x83c], 8
je 0x10082f7f
push eax
push edx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.10081744
mov edx, dword [ebp - 0x498]
jmp 0x10082f7f
cmp cl, 0x1e
jne 0x10082a85
cmp eax, 7
jne 0x10082d00
cmp dword [esi + 0x83c], 5
je 0x100829a0
cmp dword [esi + 0x83c], eax
je 0x100829a0
lea eax, [edi + 0x234]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.1007bdd8
test al, al
je 0x100831c4
push 1
mov dword [esi + 0x83c], 8
mov ecx, edi
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.100833ed
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008330b
push 0
push 7
push dword [ebp - 0x498]
lea ecx, [ebp - 0x154]
call fcn.10075e59
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 1
call fcn.100760cb
push 1
push 0x20
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007624d
push 1
push 0x10
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007624d
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.10083b10
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.10086ca2
lea ecx, [ebp - 0x154]
jmp 0x10082d61
cmp cl, 9
jne 0x10082be8
cmp eax, 9
jne 0x10082d00
push 0
push eax
push edx
lea ecx, [ebp - 0x154]
call fcn.10075e59
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 2
call fcn.100760cb
push 1
push 0x20
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007624d
push 1
push 0x20
lea eax, [ebp - 0x4e0]
push eax
lea ecx, [ebp - 0x154]
call fcn.1007624d
call fcn.1007a995
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.10091610
mov dword [ebp - 0x4b0], eax
cmp eax, dword [ebp - 0x4cc]
jbe 0x10082b21
mov edx, eax
sub edx, dword [ebp - 0x4cc]
jmp 0x10082b23
xor edx, edx
mov ecx, dword [esi + 0x6f4]
movzx eax, word [esi + ecx*8 + 0x6cc]
test eax, eax
je 0x10082b4c
imul eax, eax, 3
cmp edx, eax
jae 0x10082bd7
cmp edx, 0x4b0
jae 0x10082bd7
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 0x10082b8f
cmp eax, edx
jle 0x10082b96
mov word [esi + 0x6f8], di
cmp edx, 0x2710
jb 0x10082bb5
push 0x11e6
push str.D:InfoSAMP_API_mainSAMP_API_ONE_HEADERSAMPRakNetRakPeer.cpp
push str.ping___10000
call fcn.100a5282
add esp, 0xc
push edi
lea ecx, [esi + 0x18]
call fcn.10088729
mov eax, dword [esi + 0x6f4]
inc eax
mov dword [esi + 0x6f4], eax
cmp eax, 5
jne 0x10082bd7
and dword [esi + 0x6f4], 0
push dword [ebp - 0x498]
call fcn.100913ad
pop ecx
jmp 0x10082a7a
cmp cl, 6
jne 0x10082cec
cmp eax, 5
jne 0x10082d00
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.10075e59
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 3
call fcn.100760cb
push 1
push 0x20
lea eax, [ebp - 0x4e4]
push eax
lea ecx, [ebp - 0x268]
call fcn.1007624d
lea ecx, [ebp - 0x154]
call fcn.10075e01
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.1007611e
call fcn.1007a944
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.1007611e
push 1
push 0x20
lea eax, [ebp - 0x4bc]
mov dword [ebp - 0x4bc], esi
push eax
lea ecx, [ebp - 0x154]
call fcn.1007611e
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.1008373c
push dword [ebp - 0x498]
call fcn.100913ad
pop ecx
lea ecx, [ebp - 0x154]
call fcn.10075ec0
jmp 0x10082d5b
cmp cl, 0x20
jne 0x10082d00
mov dword [esi + 0x83c], 3
jmp 0x100831c4
cmp cl, 0x11
jne 0x10082d6f
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.10075e59
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 5
call fcn.100760cb
push 1
push 8
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x268]
call fcn.100764c2
push dword [ebp - 0x4e8]
lea ecx, [esi + 0x830]
call fcn.1008d425
push dword [ebp - 0x498]
call fcn.100913ad
pop ecx
lea ecx, [ebp - 0x268]
or dword [ebp - 4], 0xffffffff
call fcn.10075ec0
jmp 0x10083218
cmp cl, 0xa
jne 0x10082d8e
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008330b
jmp 0x100831c4
cmp cl, 0x29
jne 0x10082dca
lea ecx, [esi + 0x704]
call fcn.10075ed9
mov eax, dword [ebp - 0x4c0]
lea ecx, [esi + 0x704]
dec eax
push eax
mov eax, dword [ebp - 0x498]
inc eax
push eax
call fcn.10075ee1
push dword [ebp - 0x498]
push dword [ebp - 0x4c0]
jmp 0x100831e3
cmp cl, 0xf
jne 0x10082de6
cmp eax, 0x39
jne 0x100831d2
push edx
push esi
mov ecx, edi
call fcn.10081fa8
jmp 0x100831c4
cmp cl, 0x10
jne 0x10082f71
cmp eax, 0x35
jne 0x100831d2
lea ecx, [ebp - 0xf4]
call fcn.1008d4bd
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], 6
call fcn.1008d4da
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
push 0x14
lea eax, [edi + 0x9ac]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
lea ecx, [ebp - 0xf4]
call fcn.1008d68e
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.1008d8d3
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x10082e80
inc edx
cmp edx, 5
jne 0x10082e6f
jmp 0x10082ef4
lea ecx, [ebp - 0xf4]
call fcn.1008d4da
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
push 0x14
lea eax, [edi + 0x9c0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.1008d506
lea ecx, [ebp - 0xf4]
call fcn.1008d68e
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.1008d8d3
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x10082f51
inc edx
cmp edx, 5
jne 0x10082ee5
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.100872f3
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 0x10082f2c
push 1
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
push dword [ebp - 0x4c4]
call fcn.100817ea
push dword [ebp - 0x498]
call fcn.100913ad
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0xf4]
call fcn.1008d4cf
jmp 0x10083218
cmp cl, 0x17
jne 0x10082f85
cmp eax, 1
jne 0x100831d2
push edx
jmp 0x100831ca
cmp cl, 0x22
jne 0x100831d2
cmp eax, 0xd
jne 0x100831d2
mov eax, dword [esi + 0x83c]
cmp eax, 5
je 0x10082fb4
cmp eax, 4
je 0x10082fb4
cmp byte [edi + 0x9d4], 0
jne 0x10082fb4
xor cl, cl
jmp 0x10082fc1
mov cl, 1
mov byte [ebp - 0x499], cl
cmp eax, 5
je 0x10082fc8
mov byte [ebp - 0x499], 0
push 0
test cl, cl
je 0x100831af
push 0xd
push edx
lea ecx, [ebp - 0x490]
call fcn.10075e59
push 8
lea ecx, [ebp - 0x490]
mov dword [ebp - 4], 7
call fcn.100760cb
push 1
push 0x20
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007624d
push 1
push 0x10
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007624d
push 1
push 0x10
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x490]
call fcn.1007624d
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 0x10083079
cmp byte [esi + 0x82c], 0
lea ecx, [esi + 0x18]
je 0x10083072
lea eax, [esi + 0x81c]
push eax
jmp 0x10083074
push 0
call fcn.1008784d
push dword [ebp - 0x498]
push 0xd
call fcn.10083b10
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.10081509
push esi
mov ecx, edi
mov word [esi], ax
call fcn.10086ca2
push 7
lea ecx, [ebp - 0x37c]
call fcn.10075e1c
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.1007611e
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.1007611e
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.1007611e
call fcn.1007a944
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.1008373c
cmp byte [ebp - 0x499], 0
jne 0x10083199
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.100833ed
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008330b
lea ecx, [ebp - 0x37c]
call fcn.10075ec0
lea ecx, [ebp - 0x490]
jmp 0x10082d61
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.10081904
push dword [ebp - 0x498]
call fcn.100913ad
pop ecx
jmp 0x10083218
cmp eax, 2
jbe 0x100831dc
cmp cl, 0xc
je 0x100831e1
cmp cl, 0x14
jb 0x10083218
push edx
push eax
call fcn.10083b10
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.10086ca2
mov ecx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x498]
push eax
call fcn.10087f13
mov edi, dword [ebp - 0x4c8]
mov esi, dword [ebp - 0x4c4]
mov dword [ebp - 0x4b8], eax
test eax, eax
jg 0x1008275d
jmp 0x100832cf
mov eax, dword [esi + 0x83c]
cmp eax, 8
je 0x10083263
cmp eax, 4
je 0x10083263
cmp eax, 1
je 0x10083263
cmp eax, 3
jne 0x100832b6
push 1
call fcn.10083af2
pop ecx
mov ecx, eax
mov eax, dword [esi + 0x83c]
mov edx, dword [ecx + 0x14]
cmp eax, 4
jne 0x10083280
mov byte [edx], 0x1d
jmp 0x1008328a
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.10086ca2
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008352f
mov eax, dword [ebp - 0x4a8]
movzx ecx, word [edi + 8]
inc eax
cmp eax, ecx
mov dword [ebp - 0x4a8], eax
jb 0x10082511
mov al, 1
jmp 0x1008222d