Function at 0x405260
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using murmur3
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x413d61
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x238
mov eax, dword [0x41d040]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x579a10], 0
jne 0x4054e8
nop
mov dword [ebp - 0x1a8], 0x3e674548
mov dword [ebp - 0x1a4], 0x4e5cf99a
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a4]
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x210], eax
mov dword [ebp - 0x1b0], 0xfae10602
mov dword [ebp - 0x1ac], 0xce730b30
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x204], ecx
mov dword [ebp - 0x208], eax
mov dword [ebp - 0x1b8], 0x4c042c05
mov dword [ebp - 0x1b4], 0x22338ff5
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1c0], 0x9fcf7576
mov dword [ebp - 0x220], eax
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x1bc], 0xce736e48
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1bc]
movaps xmm1, xmmword [ebp - 0x210]
mov dword [ebp - 0x214], ecx
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x218], eax
xorps xmm1, xmmword [ebp - 0x220]
movaps xmmword [ebp - 0x210], xmm1
call fcn.004045d0
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x14c], eax
mov dword [ebp - 0x15c], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x158], ecx
cmp ecx, esi
je 0x40548d
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x40548d
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
dec edx
sub ecx, 4
mov dword [ebp - 0x154], edx
mov dword [ebp - 0x150], ecx
mov edx, dword [ecx]
mov ecx, 0x24d1e9ef
add edx, esi
mov al, byte [edx]
inc edx
mov dword [ebp - 0x160], edx
mov dl, al
mov byte [ebp - 0x165], al
mov eax, dword [ebp - 0x14c]
test dl, dl
je 0x405479
mov eax, dword [ebp - 0x160]
movsx esi, dl
lea eax, [eax + 1]
imul edx, esi, 0xcc9e2d51
ror edx, 0x11
imul edi, edx, 0x1b873593
imul edx, esi, 0x51000000
xor ecx, edi
ror ecx, 0x13
add ecx, 0xfaddaf14
ror edx, 0x11
imul esi, edx, 0x1b873593
lea edx, [ecx + ecx*4]
xor edx, esi
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor edx, ecx
imul ecx, edx, 0x539
mov dl, byte [eax - 1]
test dl, dl
jne 0x405403
mov eax, dword [ebp - 0x14c]
cmp ecx, 0x36d6827c
je 0x405494
mov esi, dword [eax + 0x18]
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x150]
test edx, edx
jne 0x4053c5
mov eax, dword [eax]
jmp 0x40538c
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0x15c]
mov edx, dword [ebp - 0x154]
push 0xfa
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
mov eax, dword [0x578c70]
cmp eax, dword [0x578c74]
jne 0x4054dc
cmp byte [0x579a10], 0
je 0x4052b0
jmp 0x4054e8
mov byte [0x579a10], 1
mov dword [0x578c74], eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x160], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x158], ecx
cmp ecx, esi
je 0x4055f5
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x4055f5
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
nop dword [eax]
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x15c], ecx
mov ecx, 0x4445c02
dec edx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x150], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x4055e7
mov eax, dword [ebp - 0x14c]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0x51000000
ror ecx, 0x11
imul esi, ecx, 0x1b873593
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor ecx, eax
ror ecx, 0x13
add ecx, 0xfaddaf14
lea edx, [ecx + ecx*4]
xor edx, esi
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul eax, ecx, 0x539
mov cl, byte [edi - 1]
test cl, cl
jne 0x405561
mov edx, dword [ebp - 0x150]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0x38095fb5
mov eax, dword [ebp - 0x154]
je 0x4055fc
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x15c]
test edx, edx
jne 0x405530
mov eax, dword [eax]
jmp 0x4054f4
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0x160]
push 0x1f4
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x160], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x158], ecx
cmp ecx, esi
je 0x405734
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x405734
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x15c], ecx
mov ecx, 0xf37b0339
dec edx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x154], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x405726
mov eax, dword [ebp - 0x14c]
nop dword [eax + eax]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0x51000000
ror ecx, 0x11
imul esi, ecx, 0x1b873593
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor ecx, eax
ror ecx, 0x13
add ecx, 0xfaddaf14
lea edx, [ecx + ecx*4]
xor edx, esi
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor edx, ecx
mov cl, byte [edi - 1]
imul eax, edx, 0x539
test cl, cl
jne 0x4056a0
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0x6c924a64
mov eax, dword [ebp - 0x150]
je 0x40573b
mov edx, dword [ebp - 0x154]
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x15c]
test edx, edx
jne 0x405667
mov eax, dword [eax]
jmp 0x40562e
mov esi, dword [ebp - 0x158]
mov edx, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x154]
push 0x104
mov eax, dword [esi + 0x24]
add eax, edx
movzx ecx, word [eax + ecx*2]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
lea ecx, [ebp - 0x120]
push ecx
add eax, edx
push 0
call eax
test eax, eax
je 0x40577c
cmp eax, 0x104
jb 0x405780
mov byte [ebp - 0x1d], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x148], xmm0
movups xmmword [ebp - 0x138], xmm0
movq qword [ebp - 0x128], xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x1c8], 0x22704d61
mov dword [ebp - 0x1c4], 0x4754e89c
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a0], eax
mov dword [ebp - 0x1d0], 0xf8ae1d04
mov dword [ebp - 0x1cc], 0xa91b0a3b
mov eax, dword [ebp - 0x1d0]
mov ecx, dword [ebp - 0x1cc]
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x198], eax
mov dword [ebp - 0x1d8], 0xaae13cd6
mov dword [ebp - 0x1d4], 0x753253c3
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1d4]
mov dword [ebp - 0x18c], ecx
mov dword [ebp - 0x190], eax
mov dword [ebp - 0x1e0], 0x207eb758
mov dword [ebp - 0x1dc], 0xf6078bf6
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x188], eax
mov dword [ebp - 0x1e8], 0x4c042c05
mov dword [ebp - 0x1e4], 0x22338ff5
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e4]
mov dword [ebp - 0x1f0], 0x9fcf7576
mov dword [ebp - 0x1ec], 0xce736e48
mov dword [ebp - 0x240], eax
mov eax, dword [ebp - 0x1f0]
mov dword [ebp - 0x23c], ecx
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x1f8], 0xaa854fb7
mov dword [ebp - 0x1f4], 0x753253c3
mov dword [ebp - 0x238], eax
mov eax, dword [ebp - 0x1f8]
mov dword [ebp - 0x234], ecx
mov ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x200], 0x207eb758
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], ecx
mov dword [ebp - 0x1fc], 0xf6078bf6
mov eax, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x1fc]
movaps xmm1, xmmword [ebp - 0x240]
xorps xmm1, xmmword [ebp - 0x1a0]
mov dword [ebp - 0x224], ecx
lea ecx, [ebp - 0x1a0]
mov dword [ebp - 0x228], eax
lea edx, [ecx + 1]
movaps xmmword [ebp - 0x1a0], xmm1
movaps xmm1, xmmword [ebp - 0x230]
xorps xmm1, xmmword [ebp - 0x190]
movaps xmmword [ebp - 0x190], xmm1
movups xmmword [ebp - 0x180], xmm0
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405950
sub ecx, edx
lea eax, [ebp - 0x1a0]
push ecx
push eax
lea ecx, [ebp - 0x180]
call fcn.004067f0
lea eax, [ebp - 0x180]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x198]
call fcn.00406680
lea eax, [ebp - 0x198]
mov byte [ebp - 4], 1
push eax
lea ecx, [ebp - 0x148]
call fcn.00406680
mov byte [ebp - 4], 0
mov ecx, 0x200
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], ecx
mov byte [ebp - 0x128], 1
cmp eax, 0xf
jbe 0x4059fd
mov edx, dword [ebp - 0x198]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x4059ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406254
push ecx
push edx
call fcn.00406c63
mov ecx, dword [ebp - 0x12c]
add esp, 8
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x184], 0xf
mov byte [ebp - 0x198], 0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x148]
cmp dword [ebp - 0x134], 0xf
cmova eax, dword [ebp - 0x148]
push eax
push ecx
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [ebp - 0x124], eax
test eax, eax
je 0x406239
push dword [ebp - 0x12c]
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [ebp - 0x130], eax
test eax, eax
je 0x406239
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x16c]
cmp ecx, 0xf
jbe 0x405ab3
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x405aa9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406254
push ecx
push edx
call fcn.00406c63
add esp, 8
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov byte [ebp - 0x180], 0
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x120]
xorps xmm0, xmm0
mov dword [ebp - 0x170], 0
movups xmmword [ebp - 0x180], xmm0
mov dword [ebp - 0x16c], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x405b00
sub ecx, edx
lea eax, [ebp - 0x120]
push ecx
push eax
lea ecx, [ebp - 0x180]
call fcn.004067f0
mov edx, dword [ebp - 0x130]
lea ecx, [ebp - 0x180]
mov edi, dword [ebp - 0x16c]
mov esi, dword [ebp - 0x180]
mov al, byte [edx]
not al
and al, 1
add al, 2
cmp edi, 0xf
mov byte [edx], al
mov eax, dword [ebp - 0x170]
cmova ecx, esi
push eax
mov dword [edx + 1], eax
lea eax, [edx + 5]
push ecx
push eax
call fcn.004081f0
add esp, 0xc
cmp edi, 0xf
jbe 0x405b8b
lea ecx, [edi + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x405b81
mov esi, dword [eax - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x406254
push ecx
push esi
call fcn.00406c63
add esp, 8
mov eax, dword fs:[0x30]
mov dword [ebp - 0x170], 0
mov dword [ebp - 0x16c], 0xf
mov byte [ebp - 0x180], 0
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x160], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x158], ecx
cmp ecx, esi
je 0x405cb5
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x405cb5
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
nop dword [eax + eax]
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x15c], ecx
mov ecx, 0xb0f82aaa
dec edx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x154], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x405ca7
mov eax, dword [ebp - 0x14c]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul esi, ecx, 0x1b873593
imul ecx, edx, 0x51000000
xor esi, eax
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
ror esi, 0x13
lea edx, [esi - 0x52250ec]
lea edx, [edx + edx*4]
xor edx, ecx
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor edx, ecx
mov cl, byte [edi - 1]
imul eax, edx, 0x539
test cl, cl
jne 0x405c21
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0x1f12a32f
mov eax, dword [ebp - 0x150]
je 0x405cbc
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x15c]
test edx, edx
jne 0x405bf0
mov eax, dword [eax]
jmp 0x405bb2
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0x160]
push dword [0x578c74]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
push 0
push 0x1fffff
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
mov dword [ebp - 0x160], eax
test eax, eax
je 0x406117
push 0
push 0
push 0x15b200
mov edx, 0x41da70
mov ecx, eax
call fcn.004034a0
add esp, 0xc
test al, al
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
je 0x405fe0
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x164], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x158], ecx
cmp ecx, esi
je 0x405e25
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x405e25
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
nop dword [eax]
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x15c], ecx
mov ecx, 0xc5207d52
dec edx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x154], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x405e17
mov eax, dword [ebp - 0x14c]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul esi, ecx, 0x1b873593
imul ecx, edx, 0x51000000
xor esi, eax
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
ror esi, 0x13
lea edx, [esi - 0x52250ec]
lea edx, [edx + edx*4]
xor edx, ecx
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor edx, ecx
mov cl, byte [edi - 1]
imul eax, edx, 0x539
test cl, cl
jne 0x405d91
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0xb49c95e4
mov eax, dword [ebp - 0x150]
je 0x405e2c
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x15c]
test edx, edx
jne 0x405d60
mov eax, dword [eax]
jmp 0x405d24
mov eax, dword [ebp - 0x158]
mov esi, dword [ebp - 0x164]
push dword [ebp - 0x160]
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x158], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x15c], ecx
cmp ecx, esi
je 0x405f64
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x405f64
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x164], ecx
mov ecx, 0xab52f325
dec edx
mov dword [ebp - 0x14c], ecx
mov dword [ebp - 0x154], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x405f56
mov eax, dword [ebp - 0x14c]
nop dword [eax]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul esi, ecx, 0x1b873593
imul ecx, edx, 0x51000000
xor esi, eax
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
ror esi, 0x13
lea edx, [esi - 0x52250ec]
lea edx, [edx + edx*4]
xor edx, ecx
xor edx, 1
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor edx, ecx
mov cl, byte [edi - 1]
imul eax, edx, 0x539
test cl, cl
jne 0x405ed0
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x14c], eax
cmp dword [ebp - 0x14c], 0x1e6251cc
mov eax, dword [ebp - 0x150]
je 0x405f6b
mov esi, dword [eax + 0x18]
mov ecx, dword [ebp - 0x164]
test edx, edx
jne 0x405e98
mov eax, dword [eax]
jmp 0x405e5f
mov eax, dword [ebp - 0x15c]
mov esi, dword [ebp - 0x158]
push 0xbb8
mov ecx, dword [eax + 0x1c]
mov eax, dword [eax + 0x24]
add ecx, esi
add eax, esi
movzx eax, word [eax + edx*2]
mov eax, dword [ecx + eax*4]
add eax, esi
call eax
mov eax, dword [ebp - 0x130]
test eax, eax
je 0x405fac
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov dword [ebp - 0x130], 0
push dword [ebp - 0x124]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x148]
mov byte [0x579a10], 0
mov dword [ebp - 4], 0xffffffff
call fcn.004051f0
jmp 0x4052a1
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x158], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x15c], ecx
cmp ecx, esi
je 0x4060b8
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x4060b8
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x164], ecx
dec edx
mov esi, 0x9e4cb3b5
mov dword [ebp - 0x150], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x4060a7
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor ecx, esi
ror ecx, 0x13
add ecx, 0xfaddaf14
lea esi, [ecx + ecx*4]
imul ecx, edx, 0x51000000
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor esi, ecx
xor esi, 1
mov ecx, esi
shr ecx, 0x10
xor ecx, esi
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul esi, ecx, 0x539
mov cl, byte [edi - 1]
test cl, cl
jne 0x406034
cmp esi, 0x20da2009
je 0x4060bf
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x164]
mov esi, dword [eax + 0x18]
test edx, edx
jne 0x406013
mov eax, dword [eax]
jmp 0x405fe0
mov esi, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x150]
mov edx, dword [ebp - 0x158]
push dword [ebp - 0x160]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
lea ecx, [ebp - 0x148]
call fcn.004051f0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00406c1b
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword fs:[0x30]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0xc]
mov esi, dword [eax + 0x18]
mov dword [ebp - 0x158], esi
mov ecx, dword [esi + 0x3c]
mov ecx, dword [ecx + esi + 0x78]
add ecx, esi
mov dword [ebp - 0x15c], ecx
cmp ecx, esi
je 0x406204
mov edx, dword [ecx + 0x18]
test edx, edx
je 0x406204
mov ecx, dword [ecx + 0x20]
lea ecx, [ecx + edx*4]
add ecx, esi
mov edi, dword [ecx - 4]
sub ecx, 4
add edi, esi
mov dword [ebp - 0x164], ecx
dec edx
mov esi, 0xcc43a78
mov dword [ebp - 0x160], edx
mov cl, byte [edi]
inc edi
test cl, cl
je 0x4061f3
nop word [eax + eax]
movsx edx, cl
lea edi, [edi + 1]
imul ecx, edx, 0xcc9e2d51
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor ecx, esi
ror ecx, 0x13
add ecx, 0xfaddaf14
lea esi, [ecx + ecx*4]
imul ecx, edx, 0x51000000
ror ecx, 0x11
imul ecx, ecx, 0x1b873593
xor esi, ecx
xor esi, 1
mov ecx, esi
shr ecx, 0x10
xor ecx, esi
imul edx, ecx, 0x85ebca6b
mov ecx, edx
shr ecx, 0xd
xor ecx, edx
imul edx, ecx, 0xc2b2ae35
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
imul esi, ecx, 0x539
mov cl, byte [edi - 1]
test cl, cl
jne 0x406180
cmp esi, 0x1a0f20dc
je 0x40620b
mov edx, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x164]
mov esi, dword [eax + 0x18]
test edx, edx
jne 0x406156
mov eax, dword [eax]
jmp 0x406123
mov esi, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x160]
mov edx, dword [ebp - 0x158]
mov eax, dword [esi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + edx]
mov eax, dword [esi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + edx]
add eax, edx
call eax
jmp 0x4060ee
push 0x41bea8
lea eax, [ebp - 0x164]
mov dword [ebp - 0x164], str.Shared_memory_segment_could_not_be_created.
push eax
call fcn.00408180
call fcn.0040a13f
int3