Function at 0x473430
Capabilities:
Create thread

Disassembly:
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x58]
xor ebx, ebx
cmp edi, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], ebx
mov byte [esp + 0x1c], bl
mov dword [esp + 0x28], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
je 0x4738af
mov ebp, dword [esp + 0x5c]
cmp bp, bx
jbe 0x4738af
cmp bp, 0xffff
jne 0x473483
pop edi
pop esi
pop ebp
mov ax, 3
pop ebx
add esp, 0x44
ret 0xc
push edi
call fcn.0046e720
add eax, 0x18
mov dword [esp + 0x58], eax
cmp word [eax], 0x7242
jne 0x4734cd
test byte [eax + 0x12], 4
jne 0x4734b1
pop edi
pop esi
mov word [eax + 6], 2
pop ebp
mov ax, 2
pop ebx
add esp, 0x44
ret 0xc
push edi
call fcn.0046f080
mov ecx, dword [0x5df9c8]
push ecx
push eax
call fcn.004743e0
mov esi, eax
add esp, 0xc
cmp esi, ebx
jne 0x4734db
pop edi
pop esi
pop ebp
mov ax, 2
pop ebx
add esp, 0x44
ret 0xc
push edi
lea ebx, [esi + 0x1f0]
call fcn.0046e720
mov dword [eax + 8], ebx
mov al, byte [esi + 0x69d]
cmp al, 2
lea ebx, [esi + 0xaa8]
lea eax, [esi + 0x5f0]
ja 0x47351c
mov edx, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push edx
push ebx
lea edx, [esi + 0x61a]
push ecx
push edx
push 0
push 0
jmp 0x473540
mov ecx, dword [esi + 0xaa4]
mov dl, byte [esi + 0x69c]
push ecx
push ebx
lea ecx, [esi + 0x61a]
push edx
push ecx
lea edx, [esi + 0xcce]
lea ecx, [esi + 0xca4]
push edx
push ecx
push eax
push 0
push edi
call fcn.00471fd0
and ebp, 0xffff
push ebp
push edi
call fcn.004706d0
test ax, ax
jne 0x4738b3
mov al, byte [esi + 0x69d]
lea edx, [esp + 0x10]
push edx
push eax
push edi
call fcn.00473390
add esp, 0xc
test ax, ax
je 0x4735a2
push edi
call fcn.00470880
test ax, ax
jne 0x473475
mov dl, byte [esi + 0x69d]
lea ecx, [esp + 0x10]
push ecx
push edx
push edi
call fcn.00473390
add esp, 0xc
test ax, ax
jne 0x473579
mov ax, word [esp + 0x10]
cmp word [esi + 0x8e], 0
mov word [esi + 0x1bc], ax
je 0x4735de
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4735de
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
mov eax, dword [esi + 0x1d8]
mov ebp, 1
cmp eax, ebp
jne 0x4735f3
push edi
call fcn.00472360
cmp word [esp + 0x60], bp
jne 0x47380a
cmp word [0x5da3de], 0
jne 0x473685
lea edx, [esp + 0x2c]
push edx
call fcn.0046aaf0
add esp, 4
test eax, eax
je 0x473630
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x4a
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
push 0
lea edx, [esp + 0x30]
push 0
push edx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
mov dword [0x5da3e4], eax
jne 0x47365f
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x4a
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
lea edx, [esp + 0x5c]
push edx
push 0
push 0
push 0x46ca50
push 0
push 0
call fcn.004d54ee
add esp, 0x18
mov dword [0x5da3e8], eax
mov word [0x5da3de], bp
cmp word [esi + 0x8e], 0
je 0x4736b5
push 0x1000
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4736b5
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
lea edx, [esp + 0x20]
lea eax, [esp + 0x14]
push edx
push eax
push edi
call fcn.0046f180
add esp, 0xc
test eax, eax
jne 0x4736e3
mov ecx, dword [esp + 0x58]
pop edi
mov eax, 0x46
pop esi
pop ebp
mov word [ecx + 6], ax
pop ebx
add esp, 0x44
ret 0xc
mov bp, word [esp + 0x14]
mov ecx, dword [0x5da3b8]
neg bp
lea edx, [esp + 0x38]
sbb ebp, ebp
push edx
push edi
and ebp, ecx
call fcn.004703d0
lea eax, [esp + 0x24]
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x2c]
push ecx
push edx
push edi
call fcn.0047db00
test ax, ax
jne 0x473727
cmp word [esp + 0x18], 2
jne 0x473727
mov byte [esp + 0x1c], 1
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x5c]
push 0
push 0
push 0
push ebp
push 1
push 1
push ecx
push edx
push eax
call fcn.00473c50
add esp, 0x28
test ax, ax
je 0x473772
push 0x404
push edi
call fcn.00470520
push edi
call fcn.00470600
pop edi
pop esi
pop ebp
mov ax, 0x46
pop ebx
add esp, 0x44
ret 0xc
mov al, byte [esp + 0x43]
cmp al, 5
je 0x473782
cmp al, 7
je 0x473782
cmp al, 8
jne 0x4737fd
mov ecx, dword [esp + 0x4b]
mov edx, dword [esp + 0x4a]
and ecx, 0xff
and edx, 0xff
shl ecx, 8
add ecx, edx
test ch, 0x40
je 0x4737fd
mov eax, dword [esi + 0x1dc]
test eax, eax
je 0x4737fd
cmp byte [esi + 0x69d], 2
ja 0x4737ca
mov eax, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x4737e9
mov edx, dword [esi + 0xaa4]
mov al, byte [esi + 0x69c]
push edx
push ebx
push eax
lea ecx, [esi + 0xcce]
push 0
lea edx, [esi + 0xca4]
push ecx
push edx
lea eax, [esi + 0x5f0]
add esi, 0x1e0
push eax
push esi
push edi
call fcn.00471fd0
pop edi
pop esi
pop ebp
xor ax, ax
pop ebx
add esp, 0x44
ret 0xc
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004703d0
mov ebp, eax
mov al, byte [esp + 0x43]
cmp al, 5
je 0x473827
cmp al, 7
je 0x473827
cmp al, 8
jne 0x4738a2
mov ecx, dword [esp + 0x4b]
mov edx, dword [esp + 0x4a]
and ecx, 0xff
and edx, 0xff
shl ecx, 8
add ecx, edx
test ch, 0x40
je 0x4738a2
mov eax, dword [esi + 0x1dc]
test eax, eax
je 0x4738a2
cmp byte [esi + 0x69d], 2
ja 0x47386f
mov eax, dword [esi + 0xaa4]
mov cl, byte [esi + 0x69c]
push eax
push ebx
push ecx
push 0
push 0
push 0
jmp 0x47388e
mov edx, dword [esi + 0xaa4]
mov al, byte [esi + 0x69c]
push edx
push ebx
push eax
lea ecx, [esi + 0xcce]
push 0
lea edx, [esi + 0xca4]
push ecx
push edx
lea eax, [esi + 0x5f0]
add esi, 0x1e0
push eax
push esi
push edi
call fcn.00471fd0
pop edi
mov ax, bp
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0xc
mov ax, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 0xc