Function at 0x10038af9
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push 0x16c
mov eax, 0x10078994
call fcn.1004605f
mov ebx, ecx
mov dword [ebp - 0x18], ebx
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [0x1009eaa4], eax
test edi, edi
je 0x10039521
cmp dword [ebp + 0xc], 1
jne 0x10039521
cmp dword [ebx + 4], 0
je 0x10038b3e
cmp edi, dword [ebx + 4]
jne 0x10038b3e
call fcn.1003a1a7
jmp 0x10039519
cmp dword [ebx + 8], 0
je 0x10038b53
cmp edi, dword [ebx + 8]
jne 0x10038b53
call fcn.1003adc9
jmp 0x10039519
cmp dword [ebx + 0x38], 0
je 0x10038ed8
cmp edi, dword [ebx + 0x38]
jne 0x10038ed8
mov edx, dword [ebx + 0x24]
lea ecx, [ebp - 0x94]
call fcn.10010616
and dword [ebp - 4], 0
cmp dword [ebp - 0x84], 4
jne 0x10038cae
mov edx, dword [ebx + 0x28]
lea ecx, [ebp - 0x7c]
call fcn.10010616
xor eax, eax
lea ecx, [ebp - 0x64]
inc eax
mov byte [ebp - 4], al
mov edx, dword [ebx + 0x2c]
call fcn.10010616
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xc4]
mov edx, dword [ebx + 0x30]
call fcn.10010616
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xac]
mov edx, dword [ebx + 0x34]
call fcn.10010616
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 4
push eax
lea edx, [ebp - 0x94]
lea ecx, [ebp - 0xf0]
call fcn.1003c551
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 5
push ecx
mov edx, eax
lea ecx, [ebp - 0x178]
call fcn.1003cfce
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x160]
call fcn.1003cfce
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 7
push ecx
mov edx, eax
lea ecx, [ebp - 0x4c]
call fcn.1003cfce
add esp, 0x10
xor eax, eax
lea ecx, [ebp - 0x160]
xor esi, esi
inc eax
push esi
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0x178]
push esi
inc eax
push eax
call fcn.10001e1f
xor eax, eax
mov byte [ebp - 4], 0xb
push esi
inc eax
lea ecx, [ebp - 0xf0]
push eax
call fcn.10001e1f
xor eax, eax
cmp dword [ebp - 0x3c], 0x14
je 0x10038dcf
push esi
inc eax
lea ecx, [ebp - 0x4c]
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0xac]
push esi
inc eax
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0xc4]
push esi
inc eax
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0x64]
push esi
inc eax
push eax
call fcn.10001e1f
xor eax, eax
mov byte [ebp - 4], 0
push esi
inc eax
lea ecx, [ebp - 0x7c]
push eax
call fcn.10001e1f
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
mov ecx, eax
call fcn.10075640
cvtsd2ss xmm0, xmm0
xor ecx, ecx
addss xmm0, dword [0x1008e1b4]
movss dword [ebx + 0x1b8], xmm0
movaps xmm0, xmmword [0x1008e2e0]
movups xmmword [ebp - 0x44], xmm0
mov al, byte [ebp - 0x44]
xor byte [ebp + ecx - 0x43], al
inc ecx
cmp ecx, 0xe
jb 0x10038cdc
lea eax, [ebp - 0x43]
mov byte [ebp - 0x35], 0
push eax
lea ecx, [ebp - 0x64]
call fcn.10001f6a
mov byte [ebp - 4], 0xe
xor ecx, ecx
movaps xmm0, xmmword [0x1008eb50]
movups xmmword [ebp - 0x148], xmm0
mov dword [ebp - 0x108], 0x39222521
movaps xmm0, xmmword [0x1008f1c0]
movups xmmword [ebp - 0x138], xmm0
mov dword [ebp - 0x104], 0x623f2938
movaps xmm0, xmmword [0x1008ea40]
movups xmmword [ebp - 0x128], xmm0
mov word [ebp - 0x100], 0x6d
movaps xmm0, xmmword [0x1008f2a0]
movups xmmword [ebp - 0x118], xmm0
mov al, byte [ebp - 0x148]
xor byte [ebp + ecx - 0x147], al
inc ecx
cmp ecx, 0x48
jb 0x10038d54
lea eax, [ebp - 0x147]
mov byte [ebp - 0xff], 0
push eax
lea ecx, [ebp - 0x7c]
call fcn.10001f6a
push 0
push 0
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x7c]
call fcn.10018621
pop ecx
pop ecx
xor eax, eax
lea ecx, [ebp - 0x7c]
push 0
inc eax
push eax
call fcn.10001e1f
xor eax, eax
mov byte [ebp - 4], 0
push 0
inc eax
lea ecx, [ebp - 0x64]
push eax
call fcn.10001e1f
mov ecx, ebx
call fcn.1003ad57
xor eax, eax
lea ecx, [ebp - 0x94]
push 0
inc eax
push eax
call fcn.10001e1f
jmp 0x10039519
push 7
pop ecx
lea edi, [ebp - 0x34]
mov byte [ebp - 0x14], 0xa1
rep stosd dword es:[edi], eax
push 0x1000
lea ecx, [ebp - 0x34]
call fcn.10008595
xor eax, eax
mov byte [ebp - 4], 0xc
inc eax
mov dword [ebp - 0x34], vtable.Packet.0
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
call fcn.10008688
xor eax, eax
mov byte [ebp - 4], 0xd
inc eax
mov byte [ebp - 0x14], 0xa6
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
call fcn.10008688
xor eax, eax
mov byte [ebp - 0x14], 0
inc eax
lea ecx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10008688
xor eax, eax
mov byte [ebp - 0x14], 3
inc eax
lea ecx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10008688
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0x34]
cmovae eax, dword [ebp - 0x4c]
push eax
call fcn.10014ce4
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
sub edx, ecx
call fcn.10011009
mov ecx, ebx
call fcn.1003ad57
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x34], vtable.ByteBuffer.0
call fcn.10008772
xor eax, eax
lea ecx, [ebp - 0x4c]
xor ebx, ebx
inc eax
push ebx
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0xac]
push ebx
inc eax
push eax
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0xc4]
push ebx
inc eax
push eax
call fcn.10001e1f
xor eax, eax
push ebx
inc eax
push eax
lea ecx, [ebp - 0x64]
call fcn.10001e1f
xor eax, eax
lea ecx, [ebp - 0x7c]
push ebx
inc eax
push eax
call fcn.10001e1f
push ebx
inc ebx
lea ecx, [ebp - 0x94]
push ebx
call fcn.10001e1f
mov al, bl
jmp 0x10039523
cmp dword [ebx + 0x3c], 0
je 0x10038eed
cmp edi, dword [ebx + 0x3c]
jne 0x10038eed
call fcn.1003ad57
jmp 0x10039519
cmp dword [ebx + 0x54], 0
je 0x10038fc2
cmp edi, dword [ebx + 0x54]
jne 0x10038fc2
cmp dword [ebx + 0x5c], 0
jbe 0x10039519
push 7
pop ecx
xor eax, eax
mov byte [ebp - 0x14], 0xa1
lea edi, [ebp - 0x34]
rep stosd dword es:[edi], eax
push 0x1000
lea ecx, [ebp - 0x34]
call fcn.10008595
xor eax, eax
mov dword [ebp - 4], 0x10
inc eax
mov dword [ebp - 0x34], vtable.Packet.0
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
call fcn.10008688
xor eax, eax
mov dword [ebp - 4], 0x11
inc eax
mov byte [ebp - 0x14], 0xa6
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x34]
call fcn.10008688
xor eax, eax
mov byte [ebp - 0x14], 0xa
inc eax
lea ecx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10008688
xor eax, eax
mov byte [ebp - 0x14], 2
inc eax
lea ecx, [ebp - 0x34]
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.10008688
mov eax, dword [ebx + 0x5c]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push 4
push eax
call fcn.10008688
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
sub edx, ecx
call fcn.10011009
mov ecx, ebx
call fcn.1003aed2
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x34], vtable.ByteBuffer.0
call fcn.10008772
jmp 0x10039519
cmp dword [ebx + 0x58], 0
je 0x10038fd7
cmp edi, dword [ebx + 0x58]
jne 0x10038fd7
call fcn.1003aed2
jmp 0x10039519
mov eax, dword [ebx + 0x80]
test eax, eax
je 0x10038fef
cmp edi, eax
jne 0x10038fef
call fcn.1003b79b
jmp 0x10039519
mov eax, dword [ebx + 0x84]
test eax, eax
je 0x10039007
cmp edi, eax
jne 0x10039007
call fcn.1003b5c5
jmp 0x10039519
mov eax, dword [ebx + 0x8c]
test eax, eax
je 0x1003902a
cmp edi, eax
jne 0x1003902a
mov edx, dword [ebx + 0x88]
sub esp, 0x18
mov ecx, esp
call fcn.10010616
jmp 0x100390b0
mov eax, dword [ebx + 0x194]
test eax, eax
je 0x10039042
cmp edi, eax
jne 0x10039042
call fcn.1003b61f
jmp 0x10039519
mov eax, dword [ebx + 0x198]
test eax, eax
je 0x1003905a
cmp edi, eax
jne 0x1003905a
call fcn.1003bd04
jmp 0x10039519
mov eax, dword [ebx + 0x1a4]
test eax, eax
je 0x1003907d
cmp edi, eax
jne 0x1003907d
mov eax, dword [ebx + 0x1a8]
cmp eax, dword [ebx + 0x1ac]
jae 0x10039519
inc eax
jmp 0x1003909b
mov eax, dword [ebx + 0x19c]
test eax, eax
je 0x100390ca
cmp edi, eax
jne 0x100390ca
mov eax, dword [ebx + 0x1a8]
cmp eax, 1
jbe 0x10039519
dec eax
sub esp, 0x18
mov dword [ebx + 0x1a8], eax
mov ecx, esp
push 0x10088750
call fcn.10001f6a
movzx eax, byte [ebx + 0x1b0]
mov ecx, ebx
push eax
push dword [ebx + 0x1a8]
call fcn.1003a4c3
jmp 0x10039519
xor al, al
lea ecx, [ebx + 0x90]
mov byte [ebp - 0x14], al
mov esi, ecx
cmp dword [esi], 0
je 0x10039144
cmp edi, dword [esi]
jne 0x10039144
push 6
mov edi, ecx
pop ebx
mov ecx, dword [edi]
mov dl, 2
call fcn.1001034a
lea edi, [edi + 4]
sub ebx, 1
jne 0x100390e5
mov ecx, dword [esi]
mov dl, 3
call fcn.1001034a
mov ebx, dword [ebp - 0x18]
xor eax, eax
sub esp, 0x18
inc eax
mov ecx, esp
mov dword [ebx + 0x1a8], eax
mov al, byte [ebp - 0x14]
push 0x10088750
mov byte [ebx + 0x1b0], al
call fcn.10001f6a
movzx eax, byte [ebx + 0x1b0]
mov ecx, ebx
push eax
push dword [ebx + 0x1a8]
call fcn.1003a4c3
mov edi, dword [ebp + 8]
lea ecx, [ebx + 0x90]
mov al, byte [ebp - 0x14]
inc al
add esi, 4
mov byte [ebp - 0x14], al
cmp al, 6
jb 0x100390d7
mov byte [ebp - 0xc8], 0
call fcn.1000ccb0
mov ecx, dword [ebx + 0x18]
mov esi, eax
mov dword [ebp - 0xcc], edx
call fcn.100103ba
test al, al
je 0x10039198
push dword [ebp - 0xcc]
mov ecx, dword [ebx + 0x18]
mov edx, esi
call fcn.10010164
pop ecx
mov ecx, dword [ebp - 0xc8]
test al, al
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov dword [ebp - 0xc8], ecx
mov ecx, dword [ebx + 0x1c]
call fcn.100103ba
test al, al
je 0x100391cc
push dword [ebp - 0xcc]
mov ecx, dword [ebx + 0x1c]
mov edx, esi
call fcn.10010164
pop ecx
mov ecx, dword [ebp - 0xc8]
test al, al
push 1
movzx ecx, cl
pop eax
cmovne ecx, eax
mov byte [ebp - 0xc8], cl
mov ecx, dword [ebx + 0x20]
call fcn.100103ba
test al, al
je 0x100391fe
push dword [ebp - 0xcc]
mov ecx, dword [ebx + 0x20]
mov edx, esi
call fcn.10010164
pop ecx
mov ecx, dword [ebp - 0xc8]
test al, al
push 1
pop eax
movzx ecx, cl
cmovne ecx, eax
mov al, cl
jmp 0x10039204
mov eax, dword [ebp - 0xc8]
test al, al
jne 0x10039519
mov eax, dword [ebx + 0xec]
sub eax, dword [ebx + 0xe8]
push 0x38
pop esi
cdq
idiv esi
mov dword [ebp - 0xd0], esi
test eax, eax
je 0x10039519
mov eax, dword [ebx + 0xec]
xor ecx, ecx
sub eax, dword [ebx + 0xe8]
cdq
idiv esi
mov dword [ebp - 0xc8], ecx
test eax, eax
je 0x10039519
xor esi, esi
mov dword [ebp - 0xd4], esi
mov eax, dword [ebx + 0xe8]
cmp dword [esi + eax + 0xc], 0
je 0x1003936e
cmp edi, dword [esi + eax + 0xc]
jne 0x1003936e
mov eax, dword [esi + eax + 0x1c]
xor edx, edx
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0xe8]
mov dword [ebp - 0x18], edx
mov eax, dword [esi + eax + 0x20]
mov dword [ebp - 0xd8], eax
mov dword [ebx + 0x60], eax
mov eax, dword [ebx + 0xf8]
sub eax, dword [ebx + 0xf4]
sar eax, 6
test eax, eax
je 0x10039361
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebx + 0xf4]
mov esi, dword [ebx + 0x5c]
cmp dword [ecx + eax + 0x18], esi
mov esi, dword [ebp - 0xd4]
jne 0x100392db
mov edi, dword [ebp - 0xcc]
mov ecx, eax
mov eax, dword [ebx + 0x60]
cmp eax, dword [edi + ecx + 0x1c]
mov edi, dword [ebp + 8]
je 0x100392fd
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebx + 0xf8]
inc edx
sub eax, dword [ebx + 0xf4]
add ecx, 0x40
sar eax, 6
mov dword [ebp - 0x18], edx
mov dword [ebp - 0xcc], ecx
cmp edx, eax
jb 0x100392ac
jmp 0x10039361
mov eax, dword [ebp - 0xd8]
dec eax
cmp eax, 0x5f5e0fe
ja 0x10039337
mov esi, edx
add ecx, 0x34
shl esi, 6
add ecx, esi
push ecx
lea ecx, [ebx + 0x70]
call fcn.1003cede
mov edx, dword [ebx + 0xf4]
mov ecx, dword [ebx + 0x40]
add edx, esi
call fcn.10010c45
mov esi, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 0xf4]
shl edx, 6
mov eax, dword [edx + eax + 0x20]
mov dword [ebx + 0x64], eax
mov eax, dword [ebx + 0xf4]
mov eax, dword [edx + eax + 0x24]
mov dword [ebx + 0x68], eax
mov eax, dword [ebx + 0xf4]
mov eax, dword [edx + eax + 0x28]
mov dword [ebx + 0x6c], eax
mov ecx, ebx
call fcn.1003b06b
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ebx + 0xe8]
cmp dword [esi + eax + 0x10], 0
je 0x100394ec
cmp edi, dword [esi + eax + 0x10]
jne 0x100394ec
mov eax, dword [ebx + 0xf8]
xor ecx, ecx
sub eax, dword [ebx + 0xf4]
sar eax, 6
test eax, eax
je 0x100394e6
xor edx, edx
mov eax, dword [ebx + 0xe8]
cmp dword [esi + eax + 0x20], 0
jbe 0x100393bb
cmp dword [esi + eax + 0x20], 0x5f5e100
jb 0x1003940d
mov eax, dword [ebx + 0xf4]
mov edi, dword [ebx + 0xe8]
mov eax, dword [edx + eax + 0x18]
cmp eax, dword [esi + edi + 0x1c]
mov edi, dword [ebp + 8]
jne 0x100393f1
mov eax, dword [ebx + 0xf4]
mov edi, dword [ebx + 0xe8]
mov eax, dword [edx + eax + 0x1c]
cmp eax, dword [esi + edi + 0x20]
mov edi, dword [ebp + 8]
je 0x100394c6
mov eax, dword [ebx + 0xf8]
inc ecx
sub eax, dword [ebx + 0xf4]
add edx, 0x40
sar eax, 6
cmp ecx, eax
jb 0x100393a4
jmp 0x100394e6
movaps xmm0, xmmword [str._tKSAV_tqT]
xor ecx, ecx
movups xmmword [ebp - 0x44], xmm0
mov al, byte [ebp - 0x44]
xor byte [ebp + ecx - 0x43], al
inc ecx
cmp ecx, 0xe
jb 0x1003941a
lea eax, [ebp - 0x43]
mov byte [ebp - 0x35], 0
push eax
lea ecx, [ebp - 0x64]
call fcn.10001f6a
mov dword [ebp - 4], 0x12
xor ecx, ecx
movaps xmm0, xmmword [0x1008efe0]
movups xmmword [ebp - 0xfc], xmm0
mov dword [ebp - 0xdc], 0x121d47
movaps xmm0, xmmword [0x1008ee60]
movups xmmword [ebp - 0xec], xmm0
mov al, byte [ebp - 0xfc]
xor byte [ebp + ecx - 0xfb], al
inc ecx
cmp ecx, 0x22
jb 0x10039466
lea eax, [ebp - 0xfb]
mov byte [ebp - 0xd9], 0
push eax
lea ecx, [ebp - 0x7c]
call fcn.10001f6a
push 0
push 0
lea edx, [ebp - 0x64]
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x7c]
call fcn.10018621
pop ecx
pop ecx
xor eax, eax
lea ecx, [ebp - 0x7c]
push 0
inc eax
push eax
call fcn.10001e1f
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x64]
xor eax, eax
push 0
inc eax
push eax
call fcn.10001e1f
jmp 0x100394e6
mov eax, dword [ebx + 0xf4]
shl ecx, 6
push dword [ecx + eax + 0x24]
push dword [ecx + eax + 0x20]
push dword [ecx + eax + 0x1c]
push dword [ecx + eax + 0x18]
mov ecx, ebx
call fcn.1003b910
mov ecx, dword [ebp - 0xc8]
push 0x38
pop eax
add esi, eax
inc ecx
mov eax, dword [ebx + 0xec]
sub eax, dword [ebx + 0xe8]
cdq
idiv dword [ebp - 0xd0]
mov dword [ebp - 0xc8], ecx
mov dword [ebp - 0xd4], esi
cmp ecx, eax
jb 0x10039253
xor ebx, ebx
inc ebx
jmp 0x10038ed1
xor al, al
call fcn.10046009
ret 8