Function at 0x10040510
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1004f91b
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1076c
call fcn.10026a20
mov eax, dword [0x1005a030]
xor eax, esp
mov dword [esp + 0x10768], eax
push ebx
push esi
push edi
mov eax, dword [0x1005a030]
xor eax, esp
push eax
lea eax, [esp + 0x10780]
mov dword fs:[0], eax
mov eax, 0x70
mov esi, ecx
mov edx, eax
mov ebx, 0x6c
mov word [esp + 0x59e], dx
mov ecx, 0x61
mov word [esp + 0x59c], cx
mov ecx, eax
mov word [esp + 0x5a0], cx
mov edx, 0x2e
mov word [esp + 0x5a2], dx
mov byte [esp + 0x561], al
mov byte [esp + 0x562], al
mov byte [esp + 0x574], al
mov edx, ebx
mov word [esp + 0x5a6], dx
xor edx, edx
mov word [esp + 0x5ac], ax
mov word [esp + 0x5aa], dx
mov ecx, 0x64
mov word [esp + 0x5a4], cx
mov eax, ebx
mov word [esp + 0x5ae], ax
mov ecx, ebx
mov word [esp + 0x5a8], cx
mov edx, 0x74
mov word [esp + 0x5b2], dx
mov eax, 0x66
mov word [esp + 0x5b4], ax
mov ecx, 0x61
mov word [esp + 0x5b0], cx
mov edx, 0x72
mov word [esp + 0x5b8], dx
mov eax, 0x6d
mov ecx, 0x6f
mov word [esp + 0x5ba], ax
mov edx, 0x64
mov word [esp + 0x5b6], cx
mov word [esp + 0x5be], dx
mov eax, ebx
xor edx, edx
mov ecx, 0x2e
push 0x330
mov word [esp + 0x5c4], ax
mov word [esp + 0x5c0], cx
push edx
lea eax, [esp + 0x234]
mov ecx, ebx
push eax
mov dword [esp + 0x24], esi
mov byte [esp + 0x56c], 0x61
mov byte [esp + 0x56f], 0x2e
mov byte [esp + 0x570], 0x64
mov byte [esp + 0x571], bl
mov byte [esp + 0x572], bl
mov byte [esp + 0x573], 0
mov byte [esp + 0x581], bl
mov byte [esp + 0x582], 0x61
mov byte [esp + 0x583], 0x74
mov byte [esp + 0x584], 0x66
mov byte [esp + 0x585], 0x6f
mov byte [esp + 0x586], 0x72
mov byte [esp + 0x587], 0x6d
mov byte [esp + 0x588], 0x2e
mov byte [esp + 0x589], 0x64
mov byte [esp + 0x58a], bl
mov byte [esp + 0x58b], bl
mov byte [esp + 0x58c], 0
mov word [esp + 0x5ce], cx
mov word [esp + 0x5d0], dx
call fcn.1001c970
push 0x190
lea ecx, [esp + 0x5e5]
push 0
push ecx
mov byte [esp + 0x5ec], 0
call fcn.1001c970
add esp, 0x18
lea edx, [esp + 0x5d4]
push edx
lea eax, [esp + 0x564]
push eax
mov ecx, esi
call fcn.100326b0
test al, al
je 0x10040767
mov ecx, 0x64
lea esi, [esp + 0x5d4]
lea edi, [esp + 0x230]
mov dword [esp + 0x22c], 1
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
push 0x191
lea ecx, [esp + 0x5d8]
push 0
push ecx
call fcn.1001c970
add esp, 0xc
lea edx, [esp + 0x5d4]
push edx
lea eax, [esp + 0x578]
push eax
mov ecx, esi
call fcn.100326b0
test al, al
je 0x100407b9
mov ecx, 0x64
lea esi, [esp + 0x5d4]
lea edi, [esp + 0x3c8]
mov dword [esp + 0x3c4], 2
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x17]
call fcn.10018680
push 0x10000
lea ecx, [esp + 0x771]
push 0
push ecx
mov dword [esp + 0x10794], 0
mov byte [esp + 0x22], 0
mov byte [esp + 0x778], 0
call fcn.1001c970
mov dl, 0x75
mov al, 0x79
add esp, 0xc
mov byte [esp + 0x587], dl
mov byte [esp + 0x58f], dl
lea edx, [esp + 0x584]
mov byte [esp + 0x58a], al
mov byte [esp + 0x597], al
mov cl, 0x65
push edx
lea eax, [esp + 0x56c]
push eax
mov byte [esp + 0x570], 0x6e
mov byte [esp + 0x571], 0x74
mov byte [esp + 0x572], 0x64
mov byte [esp + 0x573], bl
mov byte [esp + 0x574], bl
mov byte [esp + 0x575], 0x2e
mov byte [esp + 0x576], 0x64
mov byte [esp + 0x577], bl
mov byte [esp + 0x578], bl
mov byte [esp + 0x579], 0
mov byte [esp + 0x58c], 0x5a
mov byte [esp + 0x58d], 0x77
mov byte [esp + 0x58e], 0x51
mov byte [esp + 0x590], cl
mov byte [esp + 0x591], 0x72
mov byte [esp + 0x593], 0x56
mov byte [esp + 0x594], 0x69
mov byte [esp + 0x595], 0x72
mov byte [esp + 0x596], 0x74
mov byte [esp + 0x598], 0x61
mov byte [esp + 0x599], bl
mov byte [esp + 0x59a], 0x4d
mov byte [esp + 0x59b], cl
mov byte [esp + 0x59c], 0x6d
mov byte [esp + 0x59d], 0x6f
mov byte [esp + 0x59e], 0x72
mov byte [esp + 0x5a0], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
xor eax, eax
mov dword [esp + 0x24], edi
xor ebx, ebx
jmp 0x10040914
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
cmp eax, 6
jbe 0x1004092e
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x1c], 0
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 0
push 0x1c
lea ecx, [esp + 0x30]
push ecx
push 0
push ebx
call esi
push eax
call edi
test eax, eax
jl 0x10040a1f
cmp dword [esp + 0x40], 0x1000000
jne 0x10040a1f
push 0
push 0x10001
lea edx, [esp + 0x774]
push edx
push 2
push ebx
call esi
push eax
call edi
test eax, eax
jl 0x10040a1f
push 0x10000
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10040a1f
mov ecx, dword [esp + 0x770]
lea eax, [esp + 0x59c]
push eax
push ecx
call fcn.1001b8f5
add esp, 8
test eax, eax
jne 0x10040a1f
mov eax, dword [esp + 0x770]
lea edx, [esp + 0x5ac]
push edx
push eax
call fcn.1001b8f5
add esp, 8
test eax, eax
jne 0x10040a1f
xor edi, edi
lea esi, [esp + 0x22c]
mov dword [esp + 0x20], 2
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi], 0
je 0x10040a07
lea ecx, [esi + 4]
push ecx
push 0x10000
push ebx
lea ecx, [esp + 0x23]
call fcn.100189b0
cmp eax, 0xffffffff
je 0x10040a07
test eax, eax
je 0x10040a07
mov edi, dword [esi]
mov byte [esp + 0x16], 1
add esi, 0x198
sub dword [esp + 0x20], 1
jne 0x100409d7
cmp byte [esp + 0x16], 0
jne 0x10040a36
mov edi, dword [esp + 0x24]
add ebx, 0x10000
cmp ebx, 0x70000001
jb 0x10040910
jmp 0x10040ac6
push 0x1e4
lea edx, [esp + 0x48]
push 0
push edx
call fcn.1001c970
mov eax, dword [str.cQYBDD_nZH2]
mov ecx, dword [0x10053dcc]
mov edx, dword [0x10053dd0]
mov dword [esp + 0x5d4], eax
lea eax, [esp + 0x5d4]
push 0
push eax
mov byte [esp + 0x15c], 2
mov byte [esp + 0x15d], 0xfa
mov dword [esp + 0x160], 0x1f4
mov dword [esp + 0x5e0], ecx
mov dword [esp + 0x5e4], edx
call fcn.10030550
push edi
lea ecx, [esp + 0x5e0]
push ecx
lea edx, [esp + 0x60]
push str._s_d
push edx
call fcn.1001aa93
mov ecx, dword [esp + 0x3c]
add esp, 0x24
lea eax, [esp + 0x44]
push eax
add ecx, 0x1362c
call fcn.1003efe0
lea ecx, [esp + 0x17]
mov dword [esp + 0x10788], 0xffffffff
call fcn.10018690
mov eax, 1
mov ecx, dword [esp + 0x10780]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x10768]
xor ecx, esp
call fcn.1001a63f
mov esp, ebp
pop ebp
ret