Function at 0x1008be45
Capabilities:
Encode data using xor

Disassembly:
push 0x510
mov eax, 0x100c0f30
call fcn.1009a8dd
mov edi, ecx
mov dword [ebp - 0x4ac], edi
lea eax, [ebp - 0x4b8]
mov ecx, 0x1012caf8
push eax
push edi
push dword [edi + 0x828]
call fcn.10098e01
cmp eax, 0xffffffff
jne 0x1008be98
cmp dword [ebp - 0x4b8], 0x2746
jne 0x1008be89
xor eax, eax
jmp 0x1008be98
cmp dword [ebp - 0x4b8], 0
je 0x1008be98
cmp byte [edi + 4], 0
je 0x1008bee4
cmp byte [edi + 4], 0
jne 0x1008bef3
test eax, eax
jg 0x1008be5c
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x490], ecx
lea ecx, [edi + 0x7f8]
movlpd qword [ebp - 0x4b4], xmm0
call fcn.10090cc5
mov esi, eax
test esi, esi
je 0x1008bfe7
mov edx, dword [ebp - 0x4b0]
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x494], edx
mov dword [ebp - 0x48c], eax
jmp 0x1008bf01
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.1009a89b
ret
mov eax, dword [ebp - 0x48c]
cmp dword [esi + 0x34], 0
jne 0x1008bf95
or eax, edx
jne 0x1008bf22
call fcn.10084573
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x494], edx
jmp 0x1008bf28
mov eax, dword [ebp - 0x48c]
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.1008d428
test al, al
jne 0x1008bf5e
push 1
push dword [esi + 0x30]
call fcn.1009a879
pop ecx
pop ecx
cmp dword [esi + 0x1c], 0
je 0x1008bfab
push 0x100e9ba8
lea ecx, [esi + 0x10]
call fcn.100859cd
test al, al
je 0x1008bfab
push 1
push 1
push dword [esi + 0x14]
mov ecx, edi
push dword [esi + 0x10]
call fcn.1008b35e
test eax, eax
je 0x1008bfab
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x83c], ecx
jmp 0x1008bfab
movzx eax, byte [esi + 0xc]
mov ecx, edi
push eax
push 1
push 0
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.1008d212
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.10090cc5
mov edx, dword [ebp - 0x494]
mov esi, eax
test esi, esi
jne 0x1008befb
jmp 0x1008bfff
mov eax, dword [ebp - 0x4b0]
mov dword [ebp - 0x494], eax
mov eax, dword [ebp - 0x4b4]
mov dword [ebp - 0x48c], eax
lea ecx, [edi + 0x3c8]
call fcn.10090cdf
mov ecx, eax
mov dword [ebp - 0x498], ecx
mov esi, ecx
test ecx, ecx
je 0x1008c1e7
mov eax, dword [ebp - 0x48c]
or eax, dword [ebp - 0x494]
jne 0x1008c055
call fcn.10084573
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x494], eax
call fcn.1009b510
mov dword [ebp - 0x490], eax
jmp 0x1008c05b
mov eax, dword [ebp - 0x490]
cmp dword [esi + 8], eax
jae 0x1008c1c2
mov al, byte [esi + 0xc]
mov ecx, esi
push 0x100e9ba8
mov byte [ebp - 0x479], al
call fcn.100859b0
mov cl, byte [ebp - 0x479]
mov byte [ebp - 0x474], al
cmp cl, 6
je 0x1008c12b
test al, al
jne 0x1008c12b
mov eax, dword [ebp - 0x490]
inc byte [esi + 0xc]
add eax, 0x3e8
and dword [ebp - 0x4a8], 0
mov dword [esi + 8], eax
cmp dword [edi + 0x3c0], 0
mov byte [ebp - 0x488], 0x18
jbe 0x1008c106
xor ecx, ecx
mov dword [ebp - 0x4a4], ecx
mov eax, dword [edi + 0x3bc]
lea edx, [ebp - 0x488]
push dword [esi + 4]
push dword [esi]
mov ecx, dword [ecx + eax]
push 0x18
push edx
mov eax, dword [ecx]
call dword [eax + 0x1c]
mov eax, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0x4a4]
inc eax
add ecx, 4
mov dword [ebp - 0x4a8], eax
mov dword [ebp - 0x4a4], ecx
cmp eax, dword [edi + 0x3c0]
jb 0x1008c0c6
movzx eax, word [esi + 4]
mov ecx, 0x1012caf8
push eax
push dword [esi]
lea eax, [ebp - 0x488]
push 3
push eax
push dword [edi + 0x828]
call fcn.10098f58
jmp 0x1008c1c2
cmp dword [esi + 0x10], 0
je 0x1008c14a
push dword [esi + 0x10]
call fcn.1009b29d
and dword [esi + 0x10], 0
mov al, byte [ebp - 0x474]
pop ecx
mov cl, byte [ebp - 0x479]
cmp cl, 6
jne 0x1008c18e
test al, al
jne 0x1008c18e
cmp dword [esi + 0x118], 1
jne 0x1008c18e
push 1
call fcn.1008d7e4
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.100908b5
cmp esi, dword [ebp - 0x498]
jne 0x1008c1b6
lea esi, [edi + 0x3c8]
mov ecx, esi
call fcn.10090cff
mov ecx, esi
call fcn.10090cdf
mov ecx, eax
mov dword [ebp - 0x498], ecx
mov esi, ecx
jmp 0x1008c1d5
or dword [esi], 0xffffffff
mov eax, 0xffff
mov word [esi + 4], ax
lea ecx, [edi + 0x3c8]
call fcn.10090cdf
mov ecx, dword [ebp - 0x498]
mov esi, eax
test esi, esi
jne 0x1008c01c
test ecx, ecx
je 0x1008c1e7
mov dword [edi + 0x3c8], ecx
xor ecx, ecx
xor eax, eax
cmp cx, word [edi + 8]
jmp 0x1008cfbf
imul esi, eax, 0x840
add esi, dword [edi + 0x340]
mov dword [ebp - 0x4a8], esi
cmp byte [esi], 0
je 0x1008cfb2
mov eax, dword [esi + 4]
mov dword [ebp - 0x484], eax
mov ax, word [esi + 8]
mov word [ebp - 0x480], ax
mov eax, dword [ebp - 0x48c]
or eax, dword [ebp - 0x494]
jne 0x1008c25c
call fcn.10084573
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x494], eax
call fcn.1009b510
mov dword [ebp - 0x490], eax
jmp 0x1008c262
mov eax, dword [ebp - 0x490]
mov ecx, dword [esi + 0x700]
cmp eax, ecx
jbe 0x1008c2d1
sub eax, ecx
cmp eax, 0x1388
jbe 0x1008c2d1
cmp dword [esi + 0x83c], 8
jne 0x1008c2d1
lea ecx, [esi + 0x18]
call fcn.10092396
xor ecx, ecx
cmp dword [eax + 0x60], ecx
jne 0x1008c2d1
push dword [ebp - 0x494]
lea eax, [ebp - 0x474]
mov byte [ebp - 0x474], 0x17
push dword [ebp - 0x48c]
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.1008d428
lea ecx, [esi + 0x18]
call fcn.1009149a
add eax, dword [ebp - 0x490]
mov dword [esi + 0x700], eax
lea eax, [edi + 0x3bc]
push eax
push dword [ebp - 0x494]
lea ecx, [esi + 0x18]
push dword [ebp - 0x48c]
push dword [edi + 0x81c]
push dword [ebp - 0x480]
push dword [ebp - 0x484]
push dword [edi + 0x828]
call fcn.10091d0c
lea ecx, [esi + 0x18]
call fcn.10092340
test al, al
jne 0x1008cf2c
mov eax, dword [esi + 0x83c]
cmp eax, 1
je 0x1008c324
cmp eax, 2
jne 0x1008c334
lea ecx, [esi + 0x18]
call fcn.10092427
test al, al
je 0x1008cf2c
cmp dword [esi + 0x83c], 3
jne 0x1008c34d
lea ecx, [esi + 0x18]
call fcn.10092478
test al, al
je 0x1008cf2c
mov eax, dword [esi + 0x83c]
cmp eax, 4
je 0x1008c367
cmp eax, 5
je 0x1008c367
cmp eax, 6
je 0x1008c367
cmp eax, 7
jne 0x1008c384
mov ecx, dword [esi + 0x818]
mov eax, dword [ebp - 0x490]
cmp eax, ecx
jbe 0x1008c384
sub eax, ecx
cmp eax, 0x2710
ja 0x1008cf2c
lea ecx, [esi + 0x18]
call fcn.10092339
test al, al
je 0x1008c3cf
push 1
call fcn.1008d7e4
pop ecx
push eax
mov ecx, dword [eax + 0x14]
mov dword [eax + 0x10], 8
mov byte [ecx], 0x26
mov ecx, dword [ebp - 0x484]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x480]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x488]
mov word [eax], cx
mov ecx, edi
call fcn.100908b5
jmp 0x1008cfb2
cmp dword [esi + 0x83c], 8
jne 0x1008c41a
mov eax, dword [ebp - 0x490]
cmp eax, dword [esi + 0x6fc]
jbe 0x1008c41a
cmp byte [edi + 6], 0
jne 0x1008c3fa
mov ecx, 0xffff
cmp word [esi + 0x6f8], cx
jne 0x1008c41a
add eax, 0x1388
mov ecx, edi
push 1
mov dword [esi + 0x6fc], eax
push dword [ebp - 0x480]
push dword [ebp - 0x484]
call fcn.1008d0d0
lea eax, [ebp - 0x478]
lea ecx, [esi + 0x18]
push eax
call fcn.10091b39
mov dword [ebp - 0x498], eax
test eax, eax
jle 0x1008cfb2
lea ecx, [esi + 0x18]
mov dword [ebp - 0x4b0], ecx
add eax, 7
sar eax, 3
cmp dword [edi + 0x7e0], 0
mov dword [ebp - 0x49c], eax
je 0x1008c581
push 0x240
lea ecx, [ebp - 0x134]
call fcn.1007f94b
and dword [ebp - 4], 0
lea ecx, [ebp - 0x134]
call fcn.1007fa08
push dword [ebp - 0x49c]
lea ecx, [ebp - 0x134]
push dword [ebp - 0x478]
call fcn.1007fd38
mov edx, dword [ebp - 0x134]
mov dword [ebp - 0x4a0], edx
lea ecx, [edx + 7]
sar ecx, 3
add dword [edi + 0x7ec], ecx
test edx, edx
je 0x1008c563
push ecx
call fcn.1009b294
mov ecx, dword [ebp - 0x134]
mov esi, eax
add ecx, 7
sar ecx, 3
push ecx
push dword [ebp - 0x128]
push esi
call fcn.1009d190
add esp, 0x10
lea ecx, [ebp - 0x134]
call fcn.1007fa08
mov ecx, dword [edi + 0x7e0]
lea eax, [ebp - 0x134]
push eax
push dword [ebp - 0x4a0]
push esi
call fcn.10081707
mov ecx, dword [ebp - 0x134]
push esi
lea ecx, [ecx + 7]
sar ecx, 3
add dword [edi + 0x7f4], ecx
call fcn.1009b29d
mov esi, dword [ebp - 0x134]
pop ecx
lea esi, [esi + 7]
sar esi, 3
mov dword [ebp - 0x4a0], esi
cmp esi, dword [ebp - 0x49c]
jle 0x1008c545
push dword [ebp - 0x478]
call fcn.1009b29d
push esi
call fcn.1009b294
pop ecx
pop ecx
mov dword [ebp - 0x478], eax
jmp 0x1008c54b
mov eax, dword [ebp - 0x478]
push esi
push dword [ebp - 0x128]
push eax
call fcn.1009d190
mov esi, dword [ebp - 0x4a8]
add esp, 0xc
jmp 0x1008c56a
and dword [ebp - 0x4a0], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x134]
call fcn.1007f9ef
mov eax, dword [ebp - 0x4a0]
jmp 0x1008c587
mov dword [ebp - 0x4a0], eax
cmp dword [esi + 0x83c], 6
mov ecx, dword [ebp - 0x478]
jne 0x1008c60b
cmp byte [ecx], 0xb
jne 0x1008c5b6
push eax
push ecx
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
push esi
call fcn.1008b41a
jmp 0x1008cea7
push 0
push 1
push 0
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008d212
mov eax, dword [edi]
lea ecx, [esi + 0x18]
mov edi, dword [eax + 0x64]
call fcn.1009149a
push dword [ebp - 0x480]
mov esi, eax
mov eax, dword [ebp - 0x4ac]
push dword [ebp - 0x484]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xb8]
mov ecx, eax
call edx
mov ecx, dword [ebp - 0x4ac]
push esi
push eax
call edi
jmp 0x1008cea7
mov dl, byte [ecx]
cmp dl, 0xb
jne 0x1008c640
cmp dword [esi + 0x83c], 8
je 0x1008cc62
push eax
push ecx
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
push esi
call fcn.1008b41a
mov ecx, dword [ebp - 0x478]
jmp 0x1008cc62
cmp dl, 0x1e
jne 0x1008c762
cmp eax, 7
jne 0x1008c762
cmp dword [esi + 0x83c], 5
je 0x1008c67d
cmp dword [esi + 0x83c], eax
je 0x1008c67d
lea eax, [edi + 0x234]
push eax
lea ecx, [ebp - 0x484]
call fcn.100859b0
test al, al
je 0x1008cea7
push 1
mov dword [esi + 0x83c], 8
mov ecx, edi
push dword [ebp - 0x480]
push dword [ebp - 0x484]
call fcn.1008d0d0
push 1
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008cfee
push 0
push 7
push dword [ebp - 0x478]
lea ecx, [ebp - 0x134]
call fcn.1007f988
push 8
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 1
call fcn.1007fbfa
push 1
push 0x20
lea eax, [ebp - 0x4d4]
push eax
lea ecx, [ebp - 0x134]
call fcn.1007fdc1
push 1
push 0x10
lea eax, [ebp - 0x4d0]
push eax
lea ecx, [ebp - 0x134]
call fcn.1007fdc1
mov eax, dword [ebp - 0x4d4]
mov dword [esi + 0xc], eax
mov ax, word [ebp - 0x4d0]
mov word [esi + 0x10], ax
push dword [ebp - 0x478]
push 7
call fcn.1008d802
pop ecx
pop ecx
mov ecx, dword [ebp - 0x498]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x484]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x480]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x488]
mov word [eax], cx
mov ecx, edi
push eax
call fcn.100908b5
lea ecx, [ebp - 0x134]
jmp 0x1008ca3e
cmp dl, 9
jne 0x1008c8c5
cmp eax, 9
jne 0x1008c8c5
push 0
push eax
push ecx
lea ecx, [ebp - 0x134]
call fcn.1007f988
push 8
lea ecx, [ebp - 0x134]
mov dword [ebp - 4], 2
call fcn.1007fbfa
push 1
push 0x20
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0x134]
call fcn.1007fdc1
push 1
push 0x20
lea eax, [ebp - 0x4c0]
push eax
lea ecx, [ebp - 0x134]
call fcn.1007fdc1
call fcn.10084573
push 0
mov ecx, eax
mov eax, edx
push 0x3e8
push eax
push ecx
mov dword [ebp - 0x48c], ecx
mov dword [ebp - 0x494], eax
call fcn.1009b510
mov dword [ebp - 0x490], eax
cmp eax, dword [ebp - 0x4a4]
jbe 0x1008c7fe
mov edx, eax
sub edx, dword [ebp - 0x4a4]
jmp 0x1008c800
xor edx, edx
mov ecx, dword [esi + 0x6f4]
movzx eax, word [esi + ecx*8 + 0x6cc]
test eax, eax
je 0x1008c829
imul eax, eax, 3
cmp edx, eax
jae 0x1008c8b4
cmp edx, 0x4b0
jae 0x1008c8b4
movzx edi, dx
mov word [esi + ecx*8 + 0x6cc], di
mov eax, dword [ebp - 0x4a4]
add eax, dword [ebp - 0x490]
mov ecx, dword [ebp - 0x4c0]
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 0x1008c86c
cmp eax, edx
jle 0x1008c873
mov word [esi + 0x6f8], di
cmp edx, 0x2710
jb 0x1008c892
push 0x11e6
push str.E:SAMP_API_mainSAMP_API_ONE_HEADERSAMPRakNetRakPeer.cpp
push str.ping___10000
call fcn.100a16e1
add esp, 0xc
push edi
lea ecx, [esi + 0x18]
call fcn.1009234f
mov eax, dword [esi + 0x6f4]
inc eax
mov dword [esi + 0x6f4], eax
cmp eax, 5
jne 0x1008c8b4
and dword [esi + 0x6f4], 0
push dword [ebp - 0x478]
call fcn.1009b29d
pop ecx
jmp 0x1008c757
cmp dl, 6
jne 0x1008c9c9
cmp eax, 5
jne 0x1008c9dd
push 0
push eax
push ecx
lea ecx, [ebp - 0x248]
call fcn.1007f988
push 8
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], 3
call fcn.1007fbfa
push 1
push 0x20
lea eax, [ebp - 0x4c4]
push eax
lea ecx, [ebp - 0x248]
call fcn.1007fdc1
lea ecx, [ebp - 0x134]
call fcn.1007f930
push 1
push 8
lea eax, [ebp - 0x474]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x134]
mov byte [ebp - 0x474], 9
call fcn.1007fc4d
call fcn.10084522
mov esi, eax
lea ecx, [ebp - 0x134]
mov eax, dword [ebp - 0x4c4]
push 1
mov dword [ebp - 0x49c], eax
lea eax, [ebp - 0x49c]
push 0x20
push eax
mov dword [ebp - 0x490], esi
call fcn.1007fc4d
push 1
push 0x20
lea eax, [ebp - 0x49c]
mov dword [ebp - 0x49c], esi
push eax
lea ecx, [ebp - 0x134]
call fcn.1007fc4d
xor eax, eax
mov ecx, edi
push eax
push esi
push eax
push eax
push dword [ebp - 0x480]
push dword [ebp - 0x484]
push eax
push 6
push eax
push dword [ebp - 0x134]
push dword [ebp - 0x128]
call fcn.1008d428
push dword [ebp - 0x478]
call fcn.1009b29d
pop ecx
lea ecx, [ebp - 0x134]
call fcn.1007f9ef
jmp 0x1008ca38
cmp dl, 0x20
jne 0x1008c9dd
mov dword [esi + 0x83c], 3
jmp 0x1008cea7
cmp dl, 0x11
jne 0x1008ca4c
push 0
push eax
push ecx
lea ecx, [ebp - 0x248]
call fcn.1007f988
push 8
lea ecx, [ebp - 0x248]
mov dword [ebp - 4], 5
call fcn.1007fbfa
push 1
push 8
lea eax, [ebp - 0x4c8]
push eax
lea ecx, [ebp - 0x248]
call fcn.10080032
push dword [ebp - 0x4c8]
lea ecx, [esi + 0x830]
call fcn.100970a7
push dword [ebp - 0x478]
call fcn.1009b29d
pop ecx
lea ecx, [ebp - 0x248]
or dword [ebp - 4], 0xffffffff
call fcn.1007f9ef
jmp 0x1008cefb
cmp dl, 0xa
jne 0x1008ca6b
push 1
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008cfee
jmp 0x1008cea7
cmp dl, 0x29
jne 0x1008caa7
lea ecx, [esi + 0x704]
call fcn.1007fa08
mov eax, dword [ebp - 0x4a0]
lea ecx, [esi + 0x704]
dec eax
push eax
mov eax, dword [ebp - 0x478]
inc eax
push eax
call fcn.1007fa10
push dword [ebp - 0x478]
push dword [ebp - 0x4a0]
jmp 0x1008cec6
cmp dl, 0xf
jne 0x1008cac3
cmp eax, 0x39
jne 0x1008ceb5
push ecx
push esi
mov ecx, edi
call fcn.1008bc7e
jmp 0x1008cea7
cmp dl, 0x10
jne 0x1008cc54
cmp eax, 0x35
jne 0x1008ceb5
lea ecx, [ebp - 0xd4]
call fcn.1009713f
lea ecx, [ebp - 0xd4]
mov dword [ebp - 4], 6
call fcn.1009715c
push 4
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
push 2
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
push 0x14
lea eax, [edi + 0x9ac]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
lea ecx, [ebp - 0xd4]
call fcn.10097310
mov esi, dword [ebp - 0x478]
lea ecx, [ebp - 0xd4]
call fcn.10097555
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x1008cb5d
inc edx
cmp edx, 5
jne 0x1008cb4c
jmp 0x1008cbd1
lea ecx, [ebp - 0xd4]
call fcn.1009715c
push 4
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
push 2
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
push 0x14
lea eax, [edi + 0x9c0]
push eax
lea ecx, [ebp - 0xd4]
call fcn.10097188
lea ecx, [ebp - 0xd4]
call fcn.10097310
mov esi, dword [ebp - 0x478]
lea ecx, [ebp - 0xd4]
call fcn.10097555
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x1008cc34
inc edx
cmp edx, 5
jne 0x1008cbc2
mov esi, dword [ebp - 0x478]
lea edi, [ebp - 0x4fc]
push 8
pop ecx
add esi, 0x15
lea eax, [ebp - 0x51c]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x4ac]
push eax
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [edi + 0x84c]
call fcn.10090f00
mov edx, dword [ebp - 0x478]
xor ecx, ecx
mov al, byte [ebp + ecx - 0x51c]
xor al, byte [ecx + edx + 1]
mov byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0x10
jl 0x1008cc0c
push 1
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
push dword [ebp - 0x4a8]
call fcn.1008b4c0
push dword [ebp - 0x478]
call fcn.1009b29d
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0xd4]
call fcn.10097151
jmp 0x1008cefb
cmp dl, 0x17
jne 0x1008cc68
cmp eax, 1
jne 0x1008ceb5
push ecx
jmp 0x1008cead
cmp dl, 0x22
jne 0x1008ceb5
cmp eax, 0xd
jne 0x1008ceb5
mov eax, dword [esi + 0x83c]
cmp eax, 5
je 0x1008cc97
cmp eax, 4
je 0x1008cc97
cmp byte [edi + 0x9d4], 0
jne 0x1008cc97
xor dl, dl
jmp 0x1008cca4
mov dl, 1
mov byte [ebp - 0x479], dl
cmp eax, 5
je 0x1008ccab
mov byte [ebp - 0x479], 0
push 0
test dl, dl
je 0x1008ce92
push 0xd
push ecx
lea ecx, [ebp - 0x470]
call fcn.1007f988
push 8
lea ecx, [ebp - 0x470]
mov dword [ebp - 4], 7
call fcn.1007fbfa
push 1
push 0x20
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x470]
call fcn.1007fdc1
push 1
push 0x10
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x470]
call fcn.1007fdc1
push 1
push 0x10
lea eax, [ebp - 0x4bc]
push eax
lea ecx, [ebp - 0x470]
call fcn.1007fdc1
cmp byte [ebp - 0x479], 0
mov eax, dword [ebp - 0x4dc]
mov dword [esi + 0xc], eax
mov ax, word [ebp - 0x4d8]
mov word [esi + 0x10], ax
mov dword [esi + 0x83c], 8
jne 0x1008cd5c
cmp byte [esi + 0x82c], 0
lea ecx, [esi + 0x18]
je 0x1008cd55
lea eax, [esi + 0x81c]
push eax
jmp 0x1008cd57
push 0
call fcn.1009146d
push dword [ebp - 0x478]
push 0xd
call fcn.1008d802
mov esi, eax
pop ecx
pop ecx
push 1
mov dword [esi + 0x10], 0x68
mov ecx, dword [ebp - 0x484]
mov dword [esi + 4], ecx
mov cx, word [ebp - 0x480]
mov word [esi + 8], cx
mov ecx, edi
push dword [ebp - 0x480]
push dword [ebp - 0x484]
call fcn.1008b1df
push esi
mov ecx, edi
mov word [esi], ax
call fcn.100908b5
push 7
lea ecx, [ebp - 0x35c]
call fcn.1007f94b
push 1
push 8
lea eax, [ebp - 0x474]
mov byte [ebp - 4], 8
push eax
lea ecx, [ebp - 0x35c]
mov byte [ebp - 0x474], 0x1e
call fcn.1007fc4d
mov eax, dword [ebp - 0x484]
lea ecx, [ebp - 0x35c]
push 1
mov dword [ebp - 0x49c], eax
lea eax, [ebp - 0x49c]
push 0x20
push eax
call fcn.1007fc4d
movzx eax, word [ebp - 0x480]
lea ecx, [ebp - 0x35c]
push 1
mov dword [ebp - 0x4cc], eax
lea eax, [ebp - 0x4cc]
push 0x10
push eax
call fcn.1007fc4d
call fcn.10084522
xor ecx, ecx
push ecx
push eax
push ecx
push ecx
push dword [ebp - 0x480]
push dword [ebp - 0x484]
push ecx
push 8
push ecx
push dword [ebp - 0x35c]
mov ecx, edi
push dword [ebp - 0x350]
call fcn.1008d428
cmp byte [ebp - 0x479], 0
jne 0x1008ce7c
push 1
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008d0d0
push 1
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008cfee
lea ecx, [ebp - 0x35c]
call fcn.1007f9ef
lea ecx, [ebp - 0x470]
jmp 0x1008ca3e
push 1
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008b5da
push dword [ebp - 0x478]
call fcn.1009b29d
pop ecx
jmp 0x1008cefb
cmp eax, 2
jbe 0x1008cebf
cmp dl, 0xc
je 0x1008cec4
cmp dl, 0x14
jb 0x1008cefb
push ecx
push eax
call fcn.1008d802
pop ecx
pop ecx
mov ecx, dword [ebp - 0x498]
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp - 0x484]
mov dword [eax + 4], ecx
mov cx, word [ebp - 0x480]
mov word [eax + 8], cx
mov ecx, dword [ebp - 0x488]
mov word [eax], cx
mov ecx, edi
push eax
call fcn.100908b5
mov ecx, dword [ebp - 0x4b0]
lea eax, [ebp - 0x478]
push eax
call fcn.10091b39
mov edi, dword [ebp - 0x4ac]
mov esi, dword [ebp - 0x4a8]
mov dword [ebp - 0x498], eax
test eax, eax
jg 0x1008c440
jmp 0x1008cfb2
mov eax, dword [esi + 0x83c]
cmp eax, 8
je 0x1008cf46
cmp eax, 4
je 0x1008cf46
cmp eax, 1
je 0x1008cf46
cmp eax, 3
jne 0x1008cf99
push 1
call fcn.1008d7e4
pop ecx
mov ecx, eax
mov eax, dword [esi + 0x83c]
mov edx, dword [ecx + 0x14]
cmp eax, 4
jne 0x1008cf63
mov byte [edx], 0x1d
jmp 0x1008cf6d
cmp eax, 8
sete al
add al, 0x20
mov byte [edx], al
mov dword [ecx + 0x10], 8
mov eax, dword [ebp - 0x484]
mov dword [ecx + 4], eax
mov ax, word [ebp - 0x480]
mov word [ecx + 8], ax
mov eax, dword [ebp - 0x488]
mov word [ecx], ax
push ecx
mov ecx, edi
call fcn.100908b5
push 0
push 1
push 0
push dword [ebp - 0x480]
mov ecx, edi
push dword [ebp - 0x484]
call fcn.1008d212
mov eax, dword [ebp - 0x488]
movzx ecx, word [edi + 8]
inc eax
cmp eax, ecx
mov dword [ebp - 0x488], eax
jb 0x1008c1f4
mov al, 1
jmp 0x1008bef5