Function at 0x10089db
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push edi
push 0x2c
xor ebx, ebx
lea eax, [ebp - 0x40]
push ebx
push eax
call sub.msvcrt.dll_memset
mov eax, dword [0x100e340]
mov dword [ebp - 0x30], eax
mov eax, dword [0x100e34c]
mov ecx, eax
add esp, 0xc
dec ecx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x44], 0x30
mov dword [ebp - 0x40], 3
mov dword [ebp - 0x3c], 0x1008030
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
je 0x1008a71
dec ecx
je 0x1008a68
dec ecx
jne 0x1008a78
mov dword [ebp - 0x20], 0x7c
mov dword [ebp - 0x1c], 0x1001d50
lea eax, [ebp - 0x44]
push eax
call fcn.010062cb
push 0x800
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x1008a86
mov esi, 0x8007000e
jmp 0x1008cfb
mov dword [ebp - 0x20], 0x72
jmp 0x1008a7d
mov dword [ebp - 0x20], 0x73
cmp eax, 2
jne 0x1008a34
mov dword [ebp - 0x1c], 0x10016c0
jmp 0x1008a3b
xor ecx, ecx
mov word [eax], cx
mov ecx, dword [0x100e34c]
dec ecx
je 0x1008ac9
dec ecx
je 0x1008aa4
dec ecx
jne 0x1008add
push 0x400
push eax
push 0x7e
jmp 0x1008ad1
push 0x400
push eax
push 0x6e
push dword [0x100e340]
call dword [sym.imp.USER32.dll_LoadStringW]
cmp dword [0x100e300], ebx
je 0x1008add
mov dword [ebp - 4], 0x80000
jmp 0x1008add
push 0x400
push eax
push 0x6f
push dword [0x100e340]
call dword [sym.imp.USER32.dll_LoadStringW]
lea eax, [ebp - 0xc]
push eax
call dword [sym.imp.USER32.dll_GetProcessDefaultLayout]
test eax, eax
jne 0x1008b03
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, ebx
jle 0x1008b01
and eax, 0xffff
or eax, 0x80070000
cmp eax, ebx
jl 0x1008b10
test byte [ebp - 0xc], 1
je 0x1008b10
or dword [ebp - 4], 0x2000
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov edi, eax
push 0x58
push edi
call esi
push 0x5a
push edi
mov dword [ebp - 0x10], eax
call esi
push edi
push ebx
mov esi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push ebx
push dword [0x100e340]
mov eax, esi
imul eax, eax, 0x258
push ebx
push ebx
push 0x60
pop ecx
cdq
idiv ecx
push eax
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x320
cdq
idiv ecx
push eax
mov eax, SysReAllocString
push eax
push eax
push 0xcf0000
push dword [ebp - 8]
push dword [ebp - 0x1c]
push dword [ebp - 4]
call fcn.0100635d
mov ebx, eax
xor edi, edi
cmp ebx, edi
je 0x1008b82
cmp ebx, 0xffffffff
jne 0x1008baa
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x1008b96
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
cmp esi, edi
jl 0x1008ce9
mov esi, 0x80004005
jmp 0x1008ce9
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
mov eax, dword [0x100e34c]
dec eax
je 0x1008bbb
dec eax
dec eax
jne 0x1008bd0
push ebx
call fcn.010084cf
mov esi, eax
cmp esi, edi
jl 0x1008ce9
cmp esi, 1
je 0x1008bed
mov eax, dword [0x100e34c]
dec eax
jne 0x1008bf5
push ebx
call fcn.010085da
mov esi, eax
cmp esi, edi
jl 0x1008ce9
cmp esi, 1
jne 0x1008bf5
xor esi, esi
inc esi
jmp 0x1008ce9
cmp dword [0x100e34c], 2
jne 0x1008c30
cmp dword [0x100e300], edi
je 0x1008c1b
push 2
push 0xff
push 0x1fe01
push ebx
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
jmp 0x1008c30
push ebx
call dword [sym.imp.USER32.dll_GetMenu]
push 0x400
push 1
push eax
call dword [sym.imp.USER32.dll_DeleteMenu]
push edi
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, eax
cmp esi, edi
jl 0x1008ce9
push edi
call dword [sym.imp.ole32.dll_OleInitialize]
mov eax, dword [0x100e34c]
dec eax
je 0x1008cb7
dec eax
je 0x1008cb0
dec eax
jne 0x1008cd1
sub esp, 0x10
mov edi, esp
mov esi, 0x1001d7c
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call fcn.01005eb0
mov esi, eax
test esi, esi
jl 0x1008ce9
lea eax, [ebp - 0x14]
push eax
xor edi, edi
push edi
push ebx
push 0x1007b27
push edi
push edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [0x100e348], eax
cmp eax, edi
je 0x1008c93
cmp eax, 0xffffffff
jne 0x1008cd1
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x1008ca7
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
test esi, esi
jmp 0x1008b9a
mov esi, 0x1001470
jmp 0x1008cbc
mov esi, 0x1001540
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call fcn.01005eb0
mov esi, eax
test esi, esi
jl 0x1008ce9
push 1
push ebx
call fcn.01007f84
push ebx
call fcn.010057b5
push dword [ebp + 8]
push ebx
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [ebp - 8]
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8