Function at 0x10190c60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
inc dword [0x11d0d39c]
sub esp, 8
push esi
mov esi, dword [ebp + 0xc]
push edi
cmp esi, 3
ja case.default.0x10190c7d
jmp dword [esi*4 + 0x10191354]
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
push 0x400
push 0x11d0d810
call edi
push 0x400
push 0x11d0c72c
call edi
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.10451029
test eax, eax
je 0x10190e6e
call fcn.1006cef0
mov esi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x11d0d7f0
mov dword [0x11d20610], eax
call esi
push 0x11d0d82c
call esi
call fcn.1028f4c0
call fcn.10408240
push 0x11d1fc24
call esi
push 0x1000
push 0x11cd34c8
mov dword [0x11d1fc10], 0
mov dword [0x11d1fc18], 0
mov dword [0x11d1fc1c], 0
mov byte [0x11d1fc20], 0
call edi
test eax, eax
mov al, byte [0x11cd34e9]
setne cl
and al, 0xfe
or cl, al
mov byte [0x11cd34e9], cl
test cl, 1
jne 0x10190d37
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x10190d41
mov dword [0x11cd34e4], 0
mov ecx, 0x11cd3610
mov dword [0x11d0d398], 0
call fcn.100f6010
cmp byte [0x11d213c0], 0
je 0x10190da4
push 0x11d21bdc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, 0x11d20670
call fcn.100f6010
mov ax, word [0x1046bf98]
movq xmm0, qword [0x1046bf90]
mov word [0x11d0d230], ax
mov al, byte [0x1046bf9a]
push 0x11d21bdc
movq qword [0x11d0d228], xmm0
mov byte [0x11d0d232], al
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x10
push 0x24
call fcn.10434a32
mov esi, eax
add esp, 8
test esi, esi
je 0x10190de0
and byte [esi + 0x21], 0xfe
xorps xmm0, xmm0
mov dword [esi + 0x18], 0xffffffff
mov dword [esi + 0x1c], 0
mov byte [esi + 0x20], 1
movups xmmword [esi], xmm0
movq qword [esi + 0x10], xmm0
mov dword [esi + 4], 0xffffffff
jmp 0x10190de2
xor esi, esi
push 0x1000
push esi
mov dword [0x11d0c704], esi
call edi
test eax, eax
mov al, byte [esi + 0x21]
setne cl
and al, 0xfe
or cl, al
mov byte [esi + 0x21], cl
test cl, 1
jne 0x10190e0c
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x10190e13
mov dword [esi + 0x1c], 0
call fcn.1012d290
call fcn.10139750
inc dword [0x11d0c744]
call fcn.101a56c0
push 0x400
push 0x11d0d258
call edi
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.10451029
test eax, eax
je 0x10190e6e
mov eax, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp + 0x10]
push esi
push dword [ebp + 8]
call fcn.10451029
test eax, eax
jne case.default.0x10190c7d
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x11d1fc10]
test eax, eax
je 0x10190efb
mov ecx, dword [0x11d1fc18]
test ecx, ecx
jne 0x10190eb2
push eax
call dword [sym.imp.USER32.dll_UnhookWindowsHookEx]
test eax, eax
jne 0x10190e9c
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x11d1fc10], 0
mov dword [0x11d1fc14], 0
jmp 0x10190efb
push 0
push 0
push 0x12
push ecx
call dword [sym.imp.KERNEL32.dll_GetThreadId]
push eax
call dword [sym.imp.USER32.dll_PostThreadMessageA]
push 0x7d0
push dword [0x11d1fc1c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x10190ee7
push dword [0x11d1fc1c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x11d1fc18], 0
mov dword [0x11d1fc1c], 0
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x11d1fc24
call edi
call fcn.10234540
mov esi, dword [0x11d2062c]
test esi, esi
je 0x10190f2d
mov ecx, esi
call fcn.100d62c0
lea eax, [esi + 0x50]
mov esi, dword [eax]
mov dword [eax], 0
test esi, esi
jne 0x10190f17
push 0x11d20614
call edi
test byte [0x11cd34e9], 1
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [0x11d2062c], 0
je 0x10191081
mov ecx, dword [0x11cd34e4]
test byte [0x11cd34e8], 2
je 0x10190f6a
test ecx, ecx
je 0x10190f77
cmp byte [ecx + 4], 0
je 0x10190f77
push 0x11cd34c8
call edi
mov ecx, dword [0x11cd34e4]
mov esi, dword [0x11d0d398]
test esi, esi
je 0x10190f86
mov esi, dword [esi + 4]
jmp 0x10190f89
or esi, 0xffffffff
test byte [0x11cd34e8], 2
je 0x10190f9c
test ecx, ecx
je 0x10190fa7
cmp byte [ecx + 4], 0
je 0x10190fa7
push 0x11cd34c8
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp esi, 0xffffffff
je 0x10191058
cmp dword [ebp + 0x10], 0
mov ecx, esi
setne dl
call fcn.10193cd0
test byte [0x11cd34e8], 2
je 0x10190fd7
mov ecx, dword [0x11cd34e4]
test ecx, ecx
je 0x10190fe4
cmp byte [ecx + 4], 0
je 0x10190fe4
push 0x11cd34c8
call edi
mov ecx, dword [0x11cd34e4]
mov eax, dword [0x11d0d398]
xor edi, edi
test eax, eax
je 0x10191020
nop
mov edx, dword [eax]
cmp dword [eax + 4], esi
je 0x10191001
mov edi, eax
mov eax, edx
test eax, eax
jne 0x10190ff0
jmp 0x10191020
test edi, edi
je 0x10191009
mov dword [edi], edx
jmp 0x1019100f
mov dword [0x11d0d398], edx
push 8
push eax
call fcn.1045088a
mov ecx, dword [0x11cd34e4]
add esp, 8
test byte [0x11cd34e8], 2
je 0x10191041
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ecx, ecx
je 0x10190f57
cmp byte [ecx + 4], 0
je 0x10190f57
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x11cd34c8
call eax
mov edi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp 0x10190f51
test byte [0x11cd34e9], 1
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov dword [0x11cd34e4], 0
je 0x10191087
push 0x11cd34c8
call edi
and byte [0x11cd34e9], 0xfe
jmp 0x10191087
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov esi, dword [0x11d0c704]
test byte [esi + 0x21], 1
mov dword [esi + 0x1c], 0
je 0x101910a7
push esi
call edi
and byte [esi + 0x21], 0xfe
mov esi, dword [0x11d0c704]
test esi, esi
je 0x101910b6
push 0x24
push esi
call fcn.1045088a
add esp, 8
mov eax, dword [0x11d21f08]
mov dword [0x11d0c704], 0
test eax, eax
je 0x101910dc
push eax
call fcn.10434a18
add esp, 4
mov dword [0x11d21f08], 0
mov eax, dword [0x11d21f3c]
test eax, eax
je 0x101910f8
push eax
call fcn.10434a18
add esp, 4
mov dword [0x11d21f3c], 0
mov ecx, dword [0x11d21f00]
or esi, 0xffffffff
test ecx, ecx
je 0x10191120
mov eax, esi
lock xadd dword [ecx], eax
jne 0x10191116
push ecx
call fcn.10450877
add esp, 4
mov dword [0x11d21f00], 0
mov ecx, dword [0x11d21f04]
test ecx, ecx
je 0x10191145
mov eax, esi
lock xadd dword [ecx], eax
jne 0x1019113b
push ecx
call fcn.10450877
add esp, 4
mov dword [0x11d21f04], 0
mov ecx, 0x11cd3610
call fcn.100f60e0
mov eax, dword [0x11d21c00]
test eax, eax
je 0x10191172
lock xadd dword [eax], esi
dec esi
jne 0x10191168
push eax
call fcn.10450877
add esp, 4
mov dword [0x11d21c00], 0
call fcn.101398f0
cmp byte [0x11d0d1e6], 0
mov edi, dword [0x11d0c5b8]
je 0x1019126f
push 0x11d0d258
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x11c24778], 0xffffffff
je 0x10191263
cmp dword [0x11d0d250], 0
je 0x10191203
mov esi, dword fs:[0x2c]
mov esi, dword [esi + edi*4]
cmp byte [esi + 8], 0
jne 0x101911c3
call fcn.10450c0b
cmp dword [esi + 0x10], 0
je 0x101911da
cmp byte [esi + 8], 0
jne 0x101911da
call fcn.10450c0b
push 0
lea eax, [esp + 0x10]
push eax
push dword [0x11d0d250]
push dword [0x11d0d24c]
push dword [0x11c24778]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [0x11d0d250], 0
mov eax, dword fs:[0x2c]
mov esi, dword [eax + edi*4]
cmp byte [esi + 8], 0
jne 0x1019121a
call fcn.10450c0b
cmp dword [esi + 0x10], 0
je 0x10191231
cmp byte [esi + 8], 0
jne 0x10191231
call fcn.10450c0b
push dword [0x11c24778]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x11d0d24c]
mov dword [0x11c24778], 0xffffffff
test eax, eax
je 0x10191263
push eax
call fcn.10450877
add esp, 4
mov dword [0x11d0d24c], 0
mov eax, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x11d0d258
call eax
push 0x11d0d258
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [0x11d0c768]
test ecx, ecx
je 0x101912f5
mov esi, dword [ecx + 0xbe28]
test esi, esi
je 0x101912b3
mov ecx, esi
call fcn.101c10d0
push esi
call fcn.10434a18
mov eax, dword [0x11d0c768]
add esp, 4
mov dword [eax + 0xbe28], 0
mov ecx, dword [0x11d0c768]
mov eax, dword fs:[0x2c]
mov edi, dword [eax + edi*4]
mov dword [edi + 0x10], ecx
call fcn.101dc6c0
mov esi, dword [0x11d0c768]
test esi, esi
je 0x101912e1
mov ecx, esi
call fcn.101d9870
push esi
call fcn.10434a18
add esp, 4
mov dword [0x11d0c768], 0
mov dword [edi + 0x10], 0
mov edi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x11d0d82c
call edi
push 0x11d0d7f0
call edi
cmp dword [ebp + 0x10], 0
setne byte [esp + 0xc]
mov esi, dword [esp + 0xc]
push esi
call fcn.1028f4e0
push esi
call fcn.10408250
dec dword [0x11d0c744]
push 0x11d0c72c
call edi
push 0x11d0d810
call edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10451029
neg eax
pop edi
sbb eax, eax
neg eax
pop esi
mov esp, ebp
pop ebp
ret 0xc