Function at 0x10037aa3
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4c
push edi
mov edi, ecx
cmp dword [edi], 0
je 0x10037e93
push ebx
push esi
push dword [edi]
xor ebx, ebx
push ebx
push dword [edi + 4]
call fcn.10051686
add esp, 0xc
mov dword [ebp - 0xc], 0x47dc
mov dword [ebp - 8], 8
push 9
pop eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x18], 0xf3813bf5
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0xc]
neg ecx
push 1
sbb ecx, ecx
xor edx, edx
neg ecx
add ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 8]
setl dl
xor ecx, ecx
cmp edx, eax
pop esi
setge cl
add ecx, dword [ebp - 0xc]
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
neg eax
je 0x10037b2d
cmp dword [ebp - 8], ebx
je 0x10037b2d
mov ecx, esi
cmp dword [ebp - 0x34], ebx
jne 0x10037b2f
mov ecx, ebx
mov eax, dword [ebp - 0xc]
imul eax, ecx
cmp eax, 0x132d7af2
je 0x10037b3f
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x3c]
neg eax
mov dword [ebp - 0x18], eax
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10037b65
push 0x185c
push ebx
push 0x12bc
push 0x10cd
call dword [sym.imp.USER32.dll_MapWindowPoints]
push dword [edi + 4]
call fcn.100582d9
mov dword [ebp - 8], 0xbe9fb1c0
or eax, 0xffffffff
mov dword [ebp - 0xc], 0x33356370
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], 0xfffffffd
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
pop ecx
xor ecx, ecx
mov dword [ebp - 0xc], 0x2b000cd8
mov eax, dword [ebp - 8]
cmp eax, esi
setge cl
imul ecx, dword [ebp - 0xc]
test ecx, ecx
jne 0x10037bb5
mov eax, ebx
cmp dword [ebp - 8], ebx
je 0x10037bb7
mov eax, esi
xor edx, edx
cmp eax, 0x8e55
mov eax, dword [ebp - 8]
setne dl
xor ecx, ecx
cmp edx, eax
setne cl
cmp ecx, dword [ebp - 8]
jg 0x10037bd7
mov eax, esi
cmp dword [ebp - 8], ebx
jne 0x10037bd9
mov eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
add eax, 0x392715ee
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ebx
jmp 0x10037c0b
mov dword [ebp - 0xc], ebx
jmp 0x10037c02
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x4c], 0xd4782549
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 4
jl 0x10037bf4
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0xffffffec
jg 0x10037bef
mov dword [edi + 4], ebx
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0xc], 0x92f644a
push esi
call fcn.1001795c
mov dword [ebp - 0x14], 0xfffffff9
mov dword [ebp - 0x10], ebx
jmp 0x10037c40
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
mov dword [eax + ecx*4], 0x51efdb7b
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], esi
jl 0x10037c30
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 0xc]
cmp ecx, eax
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0xc]
setle dl
xor ecx, ecx
cmp edx, eax
mov edx, dword [ebp - 0xc]
setl cl
sub esi, ecx
neg esi
sbb esi, esi
sub edx, 0x2e65251c
inc esi
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
imul edx, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
cmp edx, eax
mov eax, dword [ebp - 0xc]
setle cl
sub esi, ecx
xor ecx, ecx
cmp esi, eax
mov eax, dword [ebp - 0x2c]
setge cl
sub ecx, 0x2d7bc352
mov dword [eax], ecx
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xc]
je 0x10037caf
test eax, eax
je 0x10037caf
xor eax, eax
inc eax
jmp 0x10037cb1
mov eax, ebx
cmp eax, dword [ebp - 0xc]
jge 0x10037e6a
mov dword [ebp - 8], 0x46cd
mov dword [ebp - 0x18], ebx
push 0xfffffffffffffff8
pop esi
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], ebx
je 0x10037d87
mov dword [ebp - 0x14], 0x8185f187
mov dword [ebp - 0x10], 2
mov dword [ebp - 8], 0xffffffec
jmp 0x10037d60
mov dword [ebp - 0x14], 0xefce
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10037d0b
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0xc]
mov ecx, esi
mov eax, dword [ebp - 0x14]
neg edx
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
sbb edx, edx
mov eax, dword [ebp - 0x14]
neg edx
mov eax, dword [ebp - 8]
sub ecx, eax
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x14]
imul ecx, edx, 0x67d7
xor edx, edx
add ecx, 0x2b0ec538
cmp eax, ecx
mov eax, 0xc2674d90
setne dl
cmp eax, edx
sbb ecx, ecx
inc ecx
sub ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x2c]
cmp ecx, dword [eax]
jle 0x10037d57
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x10], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 0xd
jg 0x10037cf0
mov dword [ebp - 8], ebx
jmp 0x10037d7d
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10037d7a
push ebx
call dword [sym.imp.USER32.dll_IsRectEmpty]
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jle 0x10037d6b
jmp 0x10037e87
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x14], 0x466e1a5
mov dword [ebp - 0x20], 0xfffffff9
mov dword [ebp - 0xc], ebx
jmp 0x10037e5e
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 8], ebx
jmp 0x10037dbd
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp - 0x18]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 0x18], eax
inc dword [ebp - 8]
cmp dword [ebp - 8], 4
jne 0x10037dac
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov eax, dword [ebp - 8]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, 0xa3fe
setne cl
xor edx, edx
imul ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, ecx
setne dl
sub edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
neg edx
sbb edx, edx
xor ecx, ecx
inc edx
cmp eax, edx
setge cl
xor edx, edx
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
cmp eax, ecx
mov eax, dword [ebp - 0x2c]
setg dl
cmp edx, 0x8ae633c5
sbb ecx, ecx
xor edx, edx
neg ecx
cmp ecx, dword [eax]
setne dl
cmp edx, dword [ebp - 0x10]
jl 0x10037e2b
cmp dword [ebp - 0x10], ebx
jne 0x10037e2b
mov edx, ebx
jmp 0x10037e2e
xor edx, edx
inc edx
mov eax, dword [ebp - 0x2c]
xor ecx, ecx
cmp edx, dword [eax]
mov eax, dword [ebp - 0x18]
setg cl
xor edx, edx
cmp ecx, 2
setge dl
xor ecx, ecx
cmp edx, eax
setge cl
xor eax, eax
cmp ecx, 1
setl al
imul eax, eax, 0xcae1
mov dword [ebp - 0x1c], eax
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 0xe
jg 0x10037da0
jmp 0x10037e87
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x10037e87
push 0x17ab
push 0xdfd
push 0x1518
call dword [sym.imp.USER32.dll_SetWindowLongA]
lea ecx, [ebp - 0x2c]
call fcn.100179de
pop esi
mov dword [edi], ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret