Function at 0x1008e816
Capabilities:
Encode data using xor

Disassembly:
push 0x510
mov eax, 0x100c331d
call fcn.1009cd1d
mov edi, ecx
mov dword [ebp - 0x4c8], edi
lea eax, [ebp - 0x4d8]
mov ecx, 0x1012fb10
push eax
push edi
push dword [edi + 0x828]
call fcn.1009b275
cmp eax, 0xffffffff
jne 0x1008e869
cmp dword [ebp - 0x4d8], 0x2746
jne 0x1008e85a
xor eax, eax
jmp 0x1008e869
cmp dword [ebp - 0x4d8], 0
je 0x1008e869
cmp byte [edi + 4], 0
je 0x1008e8b5
cmp byte [edi + 4], 0
jne 0x1008e8c4
test eax, eax
jg 0x1008e82d
xor ecx, ecx
xorps xmm0, xmm0
mov dword [ebp - 0x4b0], ecx
lea ecx, [edi + 0x7f8]
movlpd qword [ebp - 0x4d4], xmm0
call fcn.10093741
mov esi, eax
test esi, esi
je 0x1008e9b8
mov edx, dword [ebp - 0x4d0]
mov eax, dword [ebp - 0x4d4]
mov dword [ebp - 0x4b4], edx
mov dword [ebp - 0x4ac], eax
jmp 0x1008e8d2
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.1009ccdb
ret
mov eax, dword [ebp - 0x4ac]
cmp dword [esi + 0x34], 0
jne 0x1008e966
or eax, edx
jne 0x1008e8f3
call fcn.10086ff5
mov dword [ebp - 0x4ac], eax
mov dword [ebp - 0x4b4], edx
jmp 0x1008e8f9
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.1008fdc5
test al, al
jne 0x1008e92f
push 1
push dword [esi + 0x30]
call fcn.1009ccb9
pop ecx
pop ecx
cmp dword [esi + 0x1c], 0
je 0x1008e97c
push 0x100ec6a0
lea ecx, [esi + 0x10]
call fcn.10088455
test al, al
je 0x1008e97c
push 1
push 1
push dword [esi + 0x14]
mov ecx, edi
push dword [esi + 0x10]
call fcn.1008dd21
test eax, eax
je 0x1008e97c
mov ecx, dword [esi + 0x1c]
mov dword [eax + 0x83c], ecx
jmp 0x1008e97c
movzx eax, byte [esi + 0xc]
mov ecx, edi
push eax
push 1
push 0
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.1008fbca
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.10093741
mov edx, dword [ebp - 0x4b4]
mov esi, eax
test esi, esi
jne 0x1008e8cc
jmp 0x1008e9d0
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.1009375b
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
test ecx, ecx
je 0x1008eba5
mov eax, dword [ebp - 0x4ac]
or eax, dword [ebp - 0x4b4]
jne 0x1008ea26
call fcn.10086ff5
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.1009d810
mov dword [ebp - 0x4b0], eax
jmp 0x1008ea2c
mov eax, dword [ebp - 0x4b0]
cmp dword [esi + 8], eax
jae 0x1008eb80
mov al, byte [esi + 0xc]
mov ecx, esi
push 0x100ec6a0
mov byte [ebp - 0x499], al
call fcn.10088438
mov cl, byte [ebp - 0x499]
dec al
neg al
sbb al, al
inc al
mov byte [ebp - 0x494], al
cmp cl, 6
je 0x1008eae9
test al, al
jne 0x1008eae9
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 0x1008eac4
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 0x1008ea93
movzx eax, word [esi + 4]
mov ecx, 0x1012fb10
push eax
push dword [esi]
lea eax, [ebp - 0x4a8]
push 3
push eax
push dword [edi + 0x828]
call fcn.1009b3cc
jmp 0x1008eb80
cmp dword [esi + 0x10], 0
je 0x1008eb08
push dword [esi + 0x10]
call fcn.1009d5ad
and dword [esi + 0x10], 0
mov al, byte [ebp - 0x494]
pop ecx
mov cl, byte [ebp - 0x499]
cmp cl, 6
jne 0x1008eb4c
test al, al
jne 0x1008eb4c
cmp dword [esi + 0x118], 1
jne 0x1008eb4c
push 1
call fcn.1009017b
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.1009332b
cmp esi, dword [ebp - 0x4b8]
jne 0x1008eb74
lea esi, [edi + 0x3c8]
mov ecx, esi
call fcn.1009377b
mov ecx, esi
call fcn.1009375b
mov ecx, eax
mov dword [ebp - 0x4b8], ecx
mov esi, ecx
jmp 0x1008eb93
or dword [esi], 0xffffffff
mov eax, 0xffff
mov word [esi + 4], ax
lea ecx, [edi + 0x3c8]
call fcn.1009375b
mov ecx, dword [ebp - 0x4b8]
mov esi, eax
test esi, esi
jne 0x1008e9ed
test ecx, ecx
je 0x1008eba5
mov dword [edi + 0x3c8], ecx
xor ecx, ecx
xor eax, eax
cmp cx, word [edi + 8]
jmp 0x1008f96e
imul esi, eax, 0x840
add esi, dword [edi + 0x340]
mov dword [ebp - 0x4c4], esi
cmp byte [esi], 0
je 0x1008f961
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 0x1008ec1a
call fcn.10086ff5
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.1009d810
mov dword [ebp - 0x4b0], eax
jmp 0x1008ec20
mov eax, dword [ebp - 0x4b0]
mov ecx, dword [esi + 0x700]
cmp eax, ecx
jbe 0x1008ec8f
sub eax, ecx
cmp eax, 0x1388
jbe 0x1008ec8f
cmp dword [esi + 0x83c], 8
jne 0x1008ec8f
lea ecx, [esi + 0x18]
call fcn.10094dc5
xor ecx, ecx
cmp dword [eax + 0x60], ecx
jne 0x1008ec8f
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.1008fdc5
lea ecx, [esi + 0x18]
call fcn.10093f03
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.10094741
lea ecx, [esi + 0x18]
call fcn.10094d62
test al, al
jne 0x1008f8db
mov eax, dword [esi + 0x83c]
cmp eax, 1
je 0x1008ece8
cmp eax, 2
jne 0x1008ecf8
lea ecx, [esi + 0x18]
call fcn.10094e56
test al, al
je 0x1008f8db
cmp dword [esi + 0x83c], 3
jne 0x1008ed11
lea ecx, [esi + 0x18]
call fcn.10094ea7
test al, al
je 0x1008f8db
mov eax, dword [esi + 0x83c]
cmp eax, 4
je 0x1008ed2b
cmp eax, 5
je 0x1008ed2b
cmp eax, 6
je 0x1008ed2b
cmp eax, 7
jne 0x1008ed48
mov ecx, dword [esi + 0x818]
mov eax, dword [ebp - 0x4b0]
cmp eax, ecx
jbe 0x1008ed48
sub eax, ecx
cmp eax, 0x2710
ja 0x1008f8db
lea ecx, [esi + 0x18]
call fcn.10094d5b
test al, al
je 0x1008ed93
push 1
call fcn.1009017b
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.1009332b
jmp 0x1008f961
cmp dword [esi + 0x83c], 8
jne 0x1008edde
mov eax, dword [ebp - 0x4b0]
cmp eax, dword [esi + 0x6fc]
jbe 0x1008edde
cmp byte [edi + 6], 0
jne 0x1008edbe
mov ecx, 0xffff
cmp word [esi + 0x6f8], cx
jne 0x1008edde
add eax, 0x1388
mov ecx, edi
push 1
mov dword [esi + 0x6fc], eax
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.1008fa7f
lea eax, [ebp - 0x498]
push eax
lea ecx, [esi + 0x18]
call fcn.1009457e
jmp 0x1008f8c8
add eax, 7
sar eax, 3
cmp dword [edi + 0x7e0], 0
mov dword [ebp - 0x4bc], eax
je 0x1008ef33
push 0x240
lea ecx, [ebp - 0x154]
call fcn.1008251d
and dword [ebp - 4], 0
lea ecx, [ebp - 0x154]
call fcn.100825da
push dword [ebp - 0x4bc]
lea ecx, [ebp - 0x154]
push dword [ebp - 0x498]
call fcn.100828b9
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 0x1008ef15
push ecx
call fcn.1009d5a4
mov ecx, dword [ebp - 0x154]
mov esi, eax
add ecx, 7
sar ecx, 3
push ecx
push dword [ebp - 0x148]
push esi
call fcn.1009f330
add esp, 0x10
lea ecx, [ebp - 0x154]
call fcn.100825da
mov ecx, dword [edi + 0x7e0]
lea eax, [ebp - 0x154]
push eax
push dword [ebp - 0x4c0]
push esi
call fcn.10084266
mov ecx, dword [ebp - 0x154]
push esi
lea ecx, [ecx + 7]
sar ecx, 3
add dword [edi + 0x7f4], ecx
call fcn.1009d5ad
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 0x1008eef7
push dword [ebp - 0x498]
call fcn.1009d5ad
push esi
call fcn.1009d5a4
pop ecx
pop ecx
mov dword [ebp - 0x498], eax
jmp 0x1008eefd
mov eax, dword [ebp - 0x498]
push esi
push dword [ebp - 0x148]
push eax
call fcn.1009f330
mov esi, dword [ebp - 0x4c4]
add esp, 0xc
jmp 0x1008ef1c
and dword [ebp - 0x4c0], 0
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x154]
call fcn.100825c1
mov eax, dword [ebp - 0x4c0]
jmp 0x1008ef39
mov dword [ebp - 0x4c0], eax
cmp dword [esi + 0x83c], 6
jne 0x1008efbd
mov ecx, dword [ebp - 0x498]
cmp byte [ecx], 0xb
jne 0x1008ef68
push eax
push ecx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.1008dddd
jmp 0x1008f856
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008fbca
mov eax, dword [edi]
lea ecx, [esi + 0x18]
mov edi, dword [eax + 0x64]
call fcn.10093f03
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 0x1008f856
mov edx, dword [ebp - 0x498]
mov cl, byte [edx]
cmp cl, 0xb
jne 0x1008eff8
cmp dword [esi + 0x83c], 8
je 0x1008f611
push eax
push edx
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
push esi
call fcn.1008dddd
mov edx, dword [ebp - 0x498]
jmp 0x1008f611
cmp cl, 0x1e
jne 0x1008f11a
cmp eax, 7
jne 0x1008f392
cmp dword [esi + 0x83c], 5
je 0x1008f035
cmp dword [esi + 0x83c], eax
je 0x1008f035
lea eax, [edi + 0x234]
push eax
lea ecx, [ebp - 0x4a4]
call fcn.10088438
test al, al
je 0x1008f856
push 1
mov dword [esi + 0x83c], 8
mov ecx, edi
push dword [ebp - 0x4a0]
push dword [ebp - 0x4a4]
call fcn.1008fa7f
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008f99d
push 0
push 7
push dword [ebp - 0x498]
lea ecx, [ebp - 0x154]
call fcn.1008255a
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 1
call fcn.100827cc
push 1
push 0x20
lea eax, [ebp - 0x4f4]
push eax
lea ecx, [ebp - 0x154]
call fcn.10082942
push 1
push 0x10
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x154]
call fcn.10082942
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.10090199
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.1009332b
lea ecx, [ebp - 0x154]
jmp 0x1008f3f3
cmp cl, 9
jne 0x1008f27a
cmp eax, 9
jne 0x1008f392
push 0
push eax
push edx
lea ecx, [ebp - 0x154]
call fcn.1008255a
push 8
lea ecx, [ebp - 0x154]
mov dword [ebp - 4], 2
call fcn.100827cc
push 1
push 0x20
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x154]
call fcn.10082942
push 1
push 0x20
lea eax, [ebp - 0x4e0]
push eax
lea ecx, [ebp - 0x154]
call fcn.10082942
call fcn.10086ff5
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.1009d810
mov dword [ebp - 0x4b0], eax
cmp eax, dword [ebp - 0x4cc]
jbe 0x1008f1b6
mov edx, eax
sub edx, dword [ebp - 0x4cc]
jmp 0x1008f1b8
xor edx, edx
mov ecx, dword [esi + 0x6f4]
movzx eax, word [esi + ecx*8 + 0x6cc]
test eax, eax
je 0x1008f1e1
imul eax, eax, 3
cmp edx, eax
jae 0x1008f269
cmp edx, 0x4b0
jae 0x1008f269
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 0x1008f224
cmp eax, edx
jle 0x1008f22b
mov word [esi + 0x6f8], di
cmp edx, 0x2710
jb 0x1008f24a
push 0x11e6
push str.C:Users_viktoDesktopTANKSOFTSAMP_API_ONE_HEADERSAMPRakNetRakPeer.cpp
push str.ping___10000
call fcn.100a3881
add esp, 0xc
push edi
lea ecx, [esi + 0x18]
call fcn.10094d71
inc dword [esi + 0x6f4]
cmp dword [esi + 0x6f4], 5
jne 0x1008f269
and dword [esi + 0x6f4], 0
push dword [ebp - 0x498]
call fcn.1009d5ad
pop ecx
jmp 0x1008f10f
cmp cl, 6
jne 0x1008f37e
cmp eax, 5
jne 0x1008f392
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.1008255a
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 3
call fcn.100827cc
push 1
push 0x20
lea eax, [ebp - 0x4e4]
push eax
lea ecx, [ebp - 0x268]
call fcn.10082942
lea ecx, [ebp - 0x154]
call fcn.10082502
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.1008281f
call fcn.10086fa4
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.1008281f
push 1
push 0x20
lea eax, [ebp - 0x4bc]
mov dword [ebp - 0x4bc], esi
push eax
lea ecx, [ebp - 0x154]
call fcn.1008281f
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.1008fdc5
push dword [ebp - 0x498]
call fcn.1009d5ad
pop ecx
lea ecx, [ebp - 0x154]
call fcn.100825c1
jmp 0x1008f3ed
cmp cl, 0x20
jne 0x1008f392
mov dword [esi + 0x83c], 3
jmp 0x1008f856
cmp cl, 0x11
jne 0x1008f401
push 0
push eax
push edx
lea ecx, [ebp - 0x268]
call fcn.1008255a
push 8
lea ecx, [ebp - 0x268]
mov dword [ebp - 4], 5
call fcn.100827cc
push 1
push 8
lea eax, [ebp - 0x4e8]
push eax
lea ecx, [ebp - 0x268]
call fcn.10082bb7
push dword [ebp - 0x4e8]
lea ecx, [esi + 0x830]
call fcn.10099a5d
push dword [ebp - 0x498]
call fcn.1009d5ad
pop ecx
lea ecx, [ebp - 0x268]
or dword [ebp - 4], 0xffffffff
call fcn.100825c1
jmp 0x1008f8aa
cmp cl, 0xa
jne 0x1008f420
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008f99d
jmp 0x1008f856
cmp cl, 0x29
jne 0x1008f45c
lea ecx, [esi + 0x704]
call fcn.100825da
mov eax, dword [ebp - 0x4c0]
lea ecx, [esi + 0x704]
dec eax
push eax
mov eax, dword [ebp - 0x498]
inc eax
push eax
call fcn.100825e2
push dword [ebp - 0x498]
push dword [ebp - 0x4c0]
jmp 0x1008f875
cmp cl, 0xf
jne 0x1008f478
cmp eax, 0x39
jne 0x1008f864
push edx
push esi
mov ecx, edi
call fcn.1008e641
jmp 0x1008f856
cmp cl, 0x10
jne 0x1008f603
cmp eax, 0x35
jne 0x1008f864
lea ecx, [ebp - 0xf4]
call fcn.10099af5
lea ecx, [ebp - 0xf4]
mov dword [ebp - 4], 6
call fcn.10099b12
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
push 0x14
lea eax, [edi + 0x9ac]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
lea ecx, [ebp - 0xf4]
call fcn.10099cc7
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.10099f0c
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x1008f512
inc edx
cmp edx, 5
jne 0x1008f501
jmp 0x1008f586
lea ecx, [ebp - 0xf4]
call fcn.10099b12
push 4
lea eax, [ebp - 0x4a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
push 2
lea eax, [ebp - 0x4a0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
push 0x14
lea eax, [edi + 0x9c0]
push eax
lea ecx, [ebp - 0xf4]
call fcn.10099b3e
lea ecx, [ebp - 0xf4]
call fcn.10099cc7
mov esi, dword [ebp - 0x498]
lea ecx, [ebp - 0xf4]
call fcn.10099f0c
xor edx, edx
mov ecx, dword [eax + edx*4]
cmp ecx, dword [esi + edx*4 + 1]
jne 0x1008f5e3
inc edx
cmp edx, 5
jne 0x1008f577
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.1009397c
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 0x1008f5be
push 1
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
push dword [ebp - 0x4c4]
call fcn.1008de83
push dword [ebp - 0x498]
call fcn.1009d5ad
or dword [ebp - 4], 0xffffffff
pop ecx
lea ecx, [ebp - 0xf4]
call fcn.10099b07
jmp 0x1008f8aa
cmp cl, 0x17
jne 0x1008f617
cmp eax, 1
jne 0x1008f864
push edx
jmp 0x1008f85c
cmp cl, 0x22
jne 0x1008f864
cmp eax, 0xd
jne 0x1008f864
mov eax, dword [esi + 0x83c]
cmp eax, 5
je 0x1008f646
cmp eax, 4
je 0x1008f646
cmp byte [edi + 0x9d4], 0
jne 0x1008f646
xor cl, cl
jmp 0x1008f653
mov cl, 1
mov byte [ebp - 0x499], cl
cmp eax, 5
je 0x1008f65a
mov byte [ebp - 0x499], 0
push 0
test cl, cl
je 0x1008f841
push 0xd
push edx
lea ecx, [ebp - 0x490]
call fcn.1008255a
push 8
lea ecx, [ebp - 0x490]
mov dword [ebp - 4], 7
call fcn.100827cc
push 1
push 0x20
lea eax, [ebp - 0x4fc]
push eax
lea ecx, [ebp - 0x490]
call fcn.10082942
push 1
push 0x10
lea eax, [ebp - 0x4f8]
push eax
lea ecx, [ebp - 0x490]
call fcn.10082942
push 1
push 0x10
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x490]
call fcn.10082942
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 0x1008f70b
cmp byte [esi + 0x82c], 0
lea ecx, [esi + 0x18]
je 0x1008f704
lea eax, [esi + 0x81c]
push eax
jmp 0x1008f706
push 0
call fcn.10093ed6
push dword [ebp - 0x498]
push 0xd
call fcn.10090199
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.1008dba2
push esi
mov ecx, edi
mov word [esi], ax
call fcn.1009332b
push 7
lea ecx, [ebp - 0x37c]
call fcn.1008251d
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.1008281f
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.1008281f
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.1008281f
call fcn.10086fa4
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.1008fdc5
cmp byte [ebp - 0x499], 0
jne 0x1008f82b
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008fa7f
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008f99d
lea ecx, [ebp - 0x37c]
call fcn.100825c1
lea ecx, [ebp - 0x490]
jmp 0x1008f3f3
push 1
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008df9d
push dword [ebp - 0x498]
call fcn.1009d5ad
pop ecx
jmp 0x1008f8aa
cmp eax, 2
jbe 0x1008f86e
cmp cl, 0xc
je 0x1008f873
cmp cl, 0x14
jb 0x1008f8aa
push edx
push eax
call fcn.10090199
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.1009332b
mov ecx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x498]
push eax
call fcn.1009457e
mov edi, dword [ebp - 0x4c8]
mov esi, dword [ebp - 0x4c4]
mov dword [ebp - 0x4b8], eax
test eax, eax
jg 0x1008edf2
jmp 0x1008f961
mov eax, dword [esi + 0x83c]
cmp eax, 8
je 0x1008f8f5
cmp eax, 4
je 0x1008f8f5
cmp eax, 1
je 0x1008f8f5
cmp eax, 3
jne 0x1008f948
push 1
call fcn.1009017b
pop ecx
mov ecx, eax
mov eax, dword [esi + 0x83c]
mov edx, dword [ecx + 0x14]
cmp eax, 4
jne 0x1008f912
mov byte [edx], 0x1d
jmp 0x1008f91c
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.1009332b
push 0
push 1
push 0
push dword [ebp - 0x4a0]
mov ecx, edi
push dword [ebp - 0x4a4]
call fcn.1008fbca
mov eax, dword [ebp - 0x4a8]
movzx ecx, word [edi + 8]
inc eax
cmp eax, ecx
mov dword [ebp - 0x4a8], eax
jb 0x1008ebb2
mov al, 1
jmp 0x1008e8c6