Function at 0x1107510
Capabilities:
Create thread

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ebx
mov dword [ebx + 0x3ac], eax
mov edi, 1
test eax, 0x800
je 0x1107549
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x124], edi
test esi, esi
je 0x1107559
mov eax, dword [esi + 0x1c]
push 2
push esi
push ebx
call eax
mov eax, dword [ebp + 0x14]
cmp eax, 8
jne 0x11075a6
test esi, esi
je 0x110756b
mov ecx, dword [esi + 0x1c]
push 3
push esi
push ebx
call ecx
mov esi, dword [ebp + 0x10]
mov eax, dword [ebx + 0x18]
push 0
lea edx, [ebp - 0x20]
push edx
push esi
push eax
call fcn.010c8090
test eax, eax
je 0x1107e81
push esi
lea ecx, [ebp - 0x10]
push ecx
call fcn.010d3a40
mov eax, dword [ebx + 0x18]
lea edx, [ebp - 0x20]
push edx
push eax
call fcn.010609c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, 0x10
jne 0x11075dd
test esi, esi
je 0x11075b8
mov ecx, dword [esi + 0x1c]
push 3
push esi
push ebx
call ecx
lea edx, [ebp - 0x10]
push edx
mov edx, dword [ebp + 0x10]
push 0
push 0x10
push edx
call fcn.0101e3c0
push eax
mov eax, dword [ebx + 0x18]
push edx
push eax
call fcn.010d3930
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx + 0x3ac]
mov dword [ebp - 4], 0
mov esi, 3
test eax, 0x1000
jne 0x110764f
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x23110]
cmp dword [ecx + 0x168], 0
je 0x110761d
test dword [ecx + 0x4a8], 0x200
jne 0x1107675
cmp dword [ecx + 0x194], 0
je 0x1107675
test eax, 0x400
jne 0x1107675
test al, 1
je 0x1107675
test eax, 0x4000
jne 0x1107675
cmp dword [ebx + 0x118], edi
je 0x1107675
mov al, byte [edx + 0x26b22]
cmp al, 3
je 0x1107675
cmp al, 2
je 0x1107675
push edx
call fcn.0101c9c0
cmp eax, edi
jle 0x1107675
mov eax, dword [ebx + 0x18]
lea ecx, [ebp - 8]
push ecx
push 0
push 0
push 4
lea edx, [ebp + 0x10]
push edx
push 0x22e07c
push eax
mov dword [ebp + 0x10], esi
call fcn.0106a740
mov dword [ebp - 4], eax
test eax, eax
jne 0x110769c
mov eax, dword [ebx + 0x3ac]
test eax, 0x4000
je 0x1107686
push 0xffffffffffffffff
jmp 0x110768f
test eax, 0x400
je 0x110769c
push 0xfffffffffffffffe
call dword [sym.imp.KERNEL32.DLL_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.DLL_SetThreadPriority]
test dword [ebx + 0x3ac], 0x1000
jne 0x1107714
test byte [ebx + 0x11c], 0x80
jne 0x11076c3
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x23110]
cmp dword [ecx + 0x168], 0
jne 0x1107704
mov edi, dword [ebx + 0x18]
push 0xa5
push 8
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapAlloc]
mov esi, eax
test esi, esi
je 0x1107704
push esi
push edi
mov dword [esi], edi
mov dword [esi + 0x48], 1
mov dword [esi + 0x44], 2
mov dword [esi + 0x20], 0x1034a90
call fcn.010d5940
push esi
call fcn.01034a10
mov edx, dword [ebx + 0x18]
mov eax, dword [edx]
push eax
call fcn.010e2590
mov edi, 1
mov esi, dword [ebx + 0x18]
mov eax, dword [esi + 0x23110]
cmp dword [eax + 0x168], 0
je 0x1107740
cmp dword [eax + 0x240], 0
jne 0x1107740
cmp dword [ebx + 0x3ac], edi
je 0x1107740
cmp dword [eax + 0x194], 0
je 0x1107763
lea ecx, [ebp + 0x10]
push ecx
push 0
push esi
push 0x10d3e20
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateThread]
test eax, eax
je 0x1107763
mov edx, dword [esi + 0x1bc]
push eax
call edx
test dword [ebx + 0x3ac], 0x1000
jne 0x1107c9f
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x23110]
cmp dword [ecx + 0x168], 0
jne 0x1107c9f
mov edx, dword [eax]
push edx
push 0x1097020
push eax
call fcn.0101cbb0
mov esi, dword [ebx + 0x18]
mov eax, dword [esi + 0x29c]
xor edi, edi
call eax
mov dword [ebp + 0x10], eax
cmp eax, 0xea60
ja 0x11077d0
cmp dword [esi + 0x319d8], edi
jne 0x11077d0
mov eax, dword [esi + 0x23110]
test eax, eax
je 0x1107917
cmp dword [eax + 0x168], edi
jne 0x1107917
cmp dword [esi + 0x26b6c], 0
je 0x11077ec
cmp dword [esi + 0x26b7c], 0
je 0x11077ec
mov edi, 1
jmp 0x11078ff
lea eax, [esi + 0x26d18]
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp dword [esi + 0x26b7c], 0
jne 0x110780e
push esi
call fcn.0108f580
test eax, eax
je 0x110786a
cmp dword [esi + 0x26b6c], 0
je 0x1107821
mov edi, 1
jmp 0x11078ff
push esi
call fcn.010d4020
mov ecx, dword [ebp + 0xc]
push ecx
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
jne 0x1107849
push 0
lea eax, [esi + 0x26d18]
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
jmp 0x1107861
mov edx, dword [esi]
push edx
call fcn.010e2590
test eax, eax
je 0x1107861
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
je 0x11078ff
cmp dword [esi + 0x26d24], 0
jne 0x11078ff
mov ecx, dword [esi + 0x2f538]
mov eax, dword [ebp + 0x10]
add ecx, 0x927c0
cmp eax, ecx
jbe 0x11078c3
mov dword [esi + 0x2f538], eax
mov dword [esi + 0x2f534], 1
mov dword [ebp + 0x10], 3
cmp dword [ebp + 0x10], 0
je 0x11078c3
push esi
call fcn.010d4020
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.01102800
dec dword [ebp + 0x10]
mov edi, eax
cmp edi, 1
jne 0x11078a1
jmp 0x11078ff
cmp edi, 1
je 0x11078ff
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp eax, 0x927c0
ja 0x11078de
cmp dword [esi + 0x30dc0], 0
jne 0x11078ea
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.01102d20
mov edi, eax
cmp edi, 1
je 0x11078ff
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x14]
push 6
push 0
push 0
push eax
push esi
call ecx
push 1
add esi, 0x26b70
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp edi, 1
je 0x1107c9f
mov edi, dword [ebx + 0x18]
push 0xa5
push 8
call dword [sym.imp.KERNEL32.DLL_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.DLL_HeapAlloc]
mov esi, eax
test esi, esi
je 0x1107958
push esi
push edi
mov dword [esi], edi
mov dword [esi + 0x48], 1
mov dword [esi + 0x44], 2
mov dword [esi + 0x20], 0x1034a90
call fcn.010d5940
push esi
call fcn.01034a10
mov esi, dword [ebx + 0x18]
mov edx, dword [esi + 0x29c]
xor edi, edi
call edx
mov dword [ebp + 0x10], eax
cmp eax, 0xea60
ja 0x1107991
cmp dword [esi + 0x319d8], edi
jne 0x1107991
mov eax, dword [esi + 0x23110]
test eax, eax
je 0x1107ad6
cmp dword [eax + 0x168], edi
jne 0x1107ad6
cmp dword [esi + 0x26b6c], edi
je 0x11079ab
cmp dword [esi + 0x26b7c], edi
je 0x11079ab
mov edi, 1
jmp 0x1107abe
lea eax, [esi + 0x26d18]
push 0
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp dword [esi + 0x26b7c], edi
jne 0x11079cc
push esi
call fcn.0108f580
test eax, eax
je 0x1107a27
cmp dword [esi + 0x26b6c], edi
je 0x11079de
mov edi, 1
jmp 0x1107abe
push esi
call fcn.010d4020
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
jne 0x1107a06
push 0
lea eax, [esi + 0x26d18]
push eax
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
jmp 0x1107a1e
mov ecx, dword [esi]
push ecx
call fcn.010e2590
test eax, eax
je 0x1107a1e
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
je 0x1107abe
cmp dword [esi + 0x26d24], 0
jne 0x1107abe
mov ecx, dword [esi + 0x2f538]
mov eax, dword [ebp + 0x10]
add ecx, 0x927c0
cmp eax, ecx
jbe 0x1107a82
mov dword [esi + 0x2f538], eax
mov dword [esi + 0x2f534], 1
mov dword [ebp + 0x10], 3
mov edi, edi
cmp dword [ebp + 0x10], 0
je 0x1107a82
push esi
call fcn.010d4020
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.01102800
dec dword [ebp + 0x10]
mov edi, eax
cmp edi, 1
jne 0x1107a60
jmp 0x1107abe
cmp edi, 1
je 0x1107abe
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp eax, 0x927c0
ja 0x1107a9d
cmp dword [esi + 0x30dc0], 0
jne 0x1107aa9
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.01102d20
mov edi, eax
cmp edi, 1
je 0x1107abe
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x14]
push 6
push 0
push 0
push eax
push esi
call ecx
push 1
add esi, 0x26b70
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp edi, 1
je 0x1107c9f
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp eax, 0x927c0
jae 0x1107c7f
mov dword [ebp - 8], 3
mov edi, edi
mov esi, dword [ebx + 0x18]
mov edx, dword [esi + 0x29c]
xor edi, edi
call edx
mov dword [ebp + 0x10], eax
cmp eax, 0xea60
ja 0x1107b29
cmp dword [esi + 0x319d8], edi
jne 0x1107b29
mov eax, dword [esi + 0x23110]
test eax, eax
je 0x1107c65
cmp dword [eax + 0x168], edi
jne 0x1107c65
cmp dword [esi + 0x26b6c], 0
je 0x1107b45
cmp dword [esi + 0x26b7c], 0
je 0x1107b45
mov edi, 1
jmp 0x1107c4e
push 0
lea ebx, [esi + 0x26d18]
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
cmp dword [esi + 0x26b7c], 0
jne 0x1107b67
push esi
call fcn.0108f580
test eax, eax
je 0x1107bbd
cmp dword [esi + 0x26b6c], 0
je 0x1107b7a
mov edi, 1
jmp 0x1107c4e
push esi
call fcn.010d4020
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
jne 0x1107b9c
push 0
push ebx
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
jmp 0x1107bb4
mov ecx, dword [esi]
push ecx
call fcn.010e2590
test eax, eax
je 0x1107bb4
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.01102800
mov edi, eax
cmp edi, 1
je 0x1107c4e
cmp dword [esi + 0x26d24], 0
jne 0x1107c4e
mov eax, dword [esi + 0x2f538]
add eax, 0x927c0
cmp dword [ebp + 0x10], eax
jbe 0x1107c10
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x2f538], ecx
mov dword [esi + 0x2f534], 1
mov ebx, 3
test ebx, ebx
je 0x1107c10
push esi
call fcn.010d4020
mov edx, dword [ebp + 0xc]
push edx
push esi
call fcn.01102800
mov edi, eax
dec ebx
cmp edi, 1
jne 0x1107bf2
jmp 0x1107c4e
cmp edi, 1
je 0x1107c4e
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
cmp eax, 0x927c0
ja 0x1107c2b
cmp dword [esi + 0x30dc0], 0
jne 0x1107c39
mov ebx, dword [ebp + 0xc]
push ebx
push esi
call fcn.01102d20
mov edi, eax
jmp 0x1107c3c
mov ebx, dword [ebp + 0xc]
cmp edi, 1
je 0x1107c4e
mov eax, dword [ebx + 0x14]
push 6
push 0
push 0
push ebx
push esi
call eax
push 1
add esi, 0x26b70
push esi
call dword [sym.imp.KERNEL32.DLL_InterlockedExchange]
mov ebx, dword [ebp + 8]
cmp edi, 1
je 0x1107c9f
mov esi, dword [ebp - 8]
dec esi
push 0x7d0
mov dword [ebp - 8], esi
call dword [sym.imp.KERNEL32.DLL_Sleep]
test esi, esi
jne 0x1107af0
cmp dword [ebp + 0xc], 0
mov eax, 1
mov dword [ebx + 0x184], eax
mov dword [ebx + 0x10], eax
je 0x1107c9f
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 0x1c]
push 0x13
push eax
push ebx
call ecx
xor edi, edi
cmp dword [ebx + 0x184], edi
jne 0x1107e55
mov esi, dword [ebp + 0xc]
cmp esi, edi
je 0x1107cbd
mov edx, dword [esi + 0x1c]
push 4
push esi
push ebx
call edx
cmp dword [ebx + 0x10], edi
jne 0x1107cce
test byte [ebp + 0x14], 1
je 0x1107cce
push ebx
call fcn.010c93a0
cmp esi, edi
je 0x1107cdb
mov eax, dword [esi + 0x1c]
push 5
push esi
push ebx
call eax
cmp dword [ebx + 0x10], edi
jne 0x1107cfc
test byte [ebp + 0x14], 0x20
je 0x1107cfc
push esi
push ebx
call fcn.010b4500
cmp dword [ebx + 0x478], edi
jne 0x1107cfc
push esi
push ebx
call fcn.010c94a0
cmp esi, edi
je 0x1107d09
mov ecx, dword [esi + 0x1c]
push 6
push esi
push ebx
call ecx
cmp dword [ebx + 0x478], edi
jne 0x1107d25
cmp dword [ebx + 0x10], edi
jne 0x1107d25
test byte [ebp + 0x14], 4
je 0x1107d25
lea edx, [ebp - 0x10]
push edx
call fcn.010deaf0
cmp esi, edi
je 0x1107d32
mov eax, dword [esi + 0x1c]
push 7
push esi
push ebx
call eax
cmp dword [ebx + 0x478], edi
jne 0x1107d4c
cmp dword [ebx + 0x10], edi
jne 0x1107d4c
test byte [ebp + 0x14], 2
je 0x1107d4c
push esi
push ebx
call fcn.010ddcd0
cmp esi, edi
je 0x1107d59
mov ecx, dword [esi + 0x1c]
push 8
push esi
push ebx
call ecx
cmp dword [ebx + 0x10], edi
jne 0x1107da4
test dword [ebp + 0x14], 0x200
je 0x1107da4
cmp dword [ebx + 0x428], edi
je 0x1107d7a
push 0x100a244
push ebx
call fcn.0102e380
mov eax, dword [ebx + 0x18]
mov edx, dword [ebp + 0x14]
movzx ecx, word [eax + 0x267a4]
and edx, 0x2000
push edx
push ecx
push ebx
push eax
call fcn.010b4b80
push ebx
mov dword [ebx + 0x48c], eax
call fcn.0102e4c0
jmp 0x1107daa
mov dword [ebx + 0x48c], edi
cmp esi, edi
je 0x1107dbf
mov edx, dword [ebx + 0x48c]
mov eax, dword [ebp + 0x14]
mov ecx, dword [esi + 0x2c]
push edx
push eax
push ebx
call ecx
mov eax, dword [ebx + 0x48c]
cmp eax, edi
je 0x1107ddf
mov edx, dword [eax]
mov ecx, dword [edx + 0x6dc]
push eax
push esi
push ebx
mov dword [ebx + 0xa4], ecx
call fcn.010f2820
cmp esi, edi
je 0x1107dec
mov edx, dword [esi + 0x1c]
push 0x10
push esi
push ebx
call edx
push esi
push ebx
call fcn.010b38b0
cmp dword [ebx + 0x10], edi
jne 0x1107e04
test byte [ebp + 0x14], 0x40
je 0x1107e04
push ebx
call fcn.0106de30
mov eax, dword [ebx + 0x48c]
cmp eax, edi
je 0x1107e55
cmp dword [eax], edi
je 0x1107e55
mov ecx, dword [eax]
cmp dword [ecx + 0x70c], edi
je 0x1107e55
mov edx, ecx
mov ecx, dword [edx + 0x70c]
mov dword [ebx + 0x490], ecx
mov edx, dword [eax]
mov ecx, dword [edx + 0x6dc]
mov dword [ebx + 0x47c], ecx
mov edx, dword [eax]
mov ecx, dword [edx + 0x704]
mov edx, dword [ebx + 0x490]
mov dword [ebx + 0x480], ecx
mov eax, dword [eax]
push edx
push eax
call fcn.01032ce0
cmp dword [ebp - 4], edi
je 0x1107e7b
mov eax, dword [ebx + 0x18]
lea ecx, [ebp + 0x14]
push ecx
push edi
push edi
push 4
lea edx, [ebp + 0xc]
push edx
push 0x22e07c
push eax
mov dword [ebp + 0xc], 2
call fcn.0106a740
mov dword [ebx + 0x418], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10