Function at 0x10009420
Capabilities:
Create mailslot

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
sub esp, 0xd4
push esi
push edi
push 0
push 0xffffffffffffffff
push 0
push str..mailslot_sample_mailslot
mov byte [ebp - 1], 1
call dword [sym.imp.KERNEL32.dll_CreateMailslotA]
mov esi, dword [ebx + 0x10]
mov edi, eax
movzx eax, byte [ebp - 1]
xor ecx, ecx
cmp edi, 0xffffffff
mov dword [ebp - 0x5c], edi
cmove eax, ecx
mov dword [ebp - 0x60], eax
lea eax, [esi + 0x1288]
mov dword [ebp - 0xc], eax
cmp esi, eax
jae 0x100096ac
movsd xmm1, qword [0x100c28f0]
xorps xmm0, xmm0
movsd xmm3, qword [0x100c2da8]
mov edi, eax
movsd xmm4, qword [0x100c4130]
movsd xmm2, qword [0x100c29d8]
movsd xmm5, qword [0x100c2cc8]
movsd xmm6, qword [0x100c0798]
movsd qword [ebp - 0x80], xmm1
movsd xmm1, qword [0x100c15f0]
movsd qword [ebp - 0x98], xmm3
movsd xmm3, qword [0x100c15f8]
movsd qword [ebp - 0x30], xmm4
movsd qword [ebp - 0x18], xmm0
movsd qword [ebp - 0x50], xmm2
movsd qword [ebp - 0x48], xmm5
movsd qword [ebp - 0x38], xmm6
movsd qword [ebp - 0x40], xmm1
movsd qword [ebp - 0xa0], xmm3
cmp esi, 0x3f8
ja 0x100096f6
je 0x100096e5
cmp esi, 0x1a7
ja 0x10009662
je 0x1000964a
mov eax, esi
sub eax, 0x180
je 0x1000962e
sub eax, 8
jne 0x10009698
mov esi, 0x80
cmp esi, 0x80
je 0x10009552
cmp esi, 0x15c
jne 0x100095d5
mov eax, dword [ebp - 8]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [ebx + 0x14]
push 0
push 0x5c
mov eax, dword [eax]
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x70]
push 0
push eax
call fcn.1000ce00
add esp, 0x18
mov dword [ebp - 8], eax
test eax, eax
jne 0x100095c1
mov eax, dword [ebx + 0xc]
sub esp, 0x10
movsd xmm2, qword [ebp - 0x70]
movsd xmm1, qword [ebp - 0x78]
mov ecx, dword [ebx + 0x18]
movsd xmm0, qword [eax]
mov eax, dword [ebx + 8]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [eax]
mov eax, dword [ebx + 0x1c]
movsd qword [esp], xmm0
movsd xmm3, qword [eax]
call fcn.100048e0
add esp, 0x10
mov dword [ebp - 8], eax
test eax, eax
je 0x100095d5
mov dword [ebp - 8], 0xfffffffe
mov eax, dword [ebx + 0x18]
movsd xmm0, qword [ebp - 0x18]
unpcklpd xmm0, xmm0
movups xmmword [eax], xmm0
movsd qword [eax + 0x10], xmm0
add esi, 0xdc
cmp esi, 0x238
jb 0x10009532
movsd xmm1, qword [ebp - 0x40]
mov esi, dword [ebx + 0x10]
movsd xmm2, qword [ebp - 0x98]
lea edx, [ebp - 0x88]
movsd xmm0, qword [ebp - 0xa8]
lea ecx, [ebp - 0x90]
movaps xmm3, xmm1
mov dword [ebp - 0x58], 0
movsd xmm1, qword [ebp - 0xa0]
call fcn.10058dd0
movsd xmm0, qword [ebp - 0x18]
movsd xmm4, qword [ebp - 0x30]
jmp 0x10009684
add esp, 0xffffffdc
mov eax, dword [0x1007e028]
push ebx
mov ebx, dword [ebp + 8]
call fcn.10045300
push 0
push 0
push 1
push 1
push ebx
jmp 0x10009698
xorps xmm0, xmm0
movaps xmmword [ebp - 0xd0], xmm0
movaps xmmword [ebp - 0xc0], xmm0
movsd xmm0, qword [ebp - 0x18]
jmp 0x10009698
cmp esi, 0x3d1
jne 0x10009698
in eax, 0xd5
cli
xchg esp, eax
add eax, 0x2c1ece8
add byte [ebx + 0xff21073], cl
adc byte [ebp - 0x30], ah
movsd xmm4, qword [ebp - 0x30]
movsd xmm0, qword [ebp - 0x18]
mov edi, dword [ebp - 0xc]
movsd xmm5, qword [ebp - 0x48]
movsd xmm6, qword [ebp - 0x38]
movsd xmm2, qword [ebp - 0x50]
movsd xmm1, qword [ebp - 0x40]
add esi, 0x251
mov dword [ebx + 0x10], esi
cmp esi, edi
jb 0x100094f3
mov edi, dword [ebp - 0x5c]
cmp byte [ebp - 0x60], 0
je 0x100096d9
push 0
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetMailslotInfo]
test eax, eax
je 0x100096d2
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetMailslotInfo]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x64]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movsd qword [ebp - 0xa8], xmm2
mov dword [ebp - 0x54], 0
jmp 0x10009698
mov eax, esi
sub eax, 0x622
je 0x1000987d
sub eax, 0x27
je 0x100095ef
sub eax, 0x251
jne 0x10009698
movsd xmm3, qword [ebp - 0x90]
movaps xmm2, xmm3
subsd xmm2, xmm5
ucomisd xmm2, xmm0
lahf
test ah, 0x44
jnp 0x1000977e
movaps xmm1, xmm2
movaps xmm0, xmm6
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x1000977e
movaps xmm0, xmm5
mov edi, dword [ebx + 0x14]
divsd xmm0, xmm2
sub esp, 0x18
mov dword [edi], 1
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm5
push 0x1007cc24
push str.eraFw2xy
push str._s_failed:__s_want__.20g_got__.20g__1__.3g__n
call fcn.100010e0
add esp, 0x24
jmp 0x100097af
cmp dword [0x100ceab0], 0
je 0x100097ac
sub esp, 0x10
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm5
push 0x1007cc24
push str.eraFw2xy
push str._s_passed:__s_want__.20g_got__.20g_n
call fcn.100010e0
add esp, 0x1c
mov edi, dword [ebx + 0x14]
lea eax, [ebp - 0x54]
push eax
push dword [ebp - 0x58]
lea eax, [ebp - 0xd0]
push eax
push 1
call dword [sym.imp.ADVAPI32.dll_SetEntriesInAclW]
movsd xmm3, qword [ebp - 0x88]
movsd xmm6, qword [ebp - 0x80]
movaps xmm2, xmm3
movsd xmm0, qword [ebp - 0x18]
subsd xmm2, xmm6
movsd xmm4, qword [ebp - 0x30]
ucomisd xmm2, xmm0
lahf
test ah, 0x44
jnp 0x10009846
movsd xmm0, qword [ebp - 0x38]
movaps xmm1, xmm2
andps xmm1, xmm4
andps xmm0, xmm4
comisd xmm1, xmm0
jbe 0x10009841
movaps xmm0, xmm6
mov dword [edi], 1
divsd xmm0, xmm2
sub esp, 0x18
andps xmm0, xmm4
movsd qword [esp + 0x10], xmm0
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm6
push 0x1007cc30
push str.eraFw2xy
push str._s_failed:__s_want__.20g_got__.20g__1__.3g__n
call fcn.100010e0
add esp, 0x24
jmp 0x10009677
movsd xmm0, qword [ebp - 0x18]
cmp dword [0x100ceab0], 0
je 0x10009681
sub esp, 0x10
movsd qword [esp + 8], xmm3
movsd qword [esp], xmm6
push 0x1007cc30
push str.eraFw2xy
push str._s_passed:__s_want__.20g_got__.20g_n
call fcn.100010e0
add esp, 0x1c
jmp 0x10009677
add esp, 0x14
mov edx, dword [ebp - 0x24]
mov dword fs:[0], edx
pop ebx
mov esp, ebp
pop ebp
ret