Function at 0x445f50
Capabilities:
Access peb ldr_data
Get kernel32 base address
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x446461
sub esp, 0x34
mov eax, dword [esp + 0x40]
test eax, eax
sete cl
setl dl
mov ebx, dword [esp + 0x3c]
test ebx, ebx
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, ecx
or ebp, edx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x446456
mov eax, 0xffffffff
mov ecx, 0x7fffffff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x38]
test byte [eax], al
lea ecx, [eax + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp], ecx
call fcn.00401f70
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
cmp eax, 3
ja 0x446404
cmp eax, 1
jbe 0x4462f3
cmp eax, 2
jne 0x445fee
mov eax, dword [0x5b1398]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00454e50
jmp 0x445fa2
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x446066
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445fa2
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445fa2
mov dword [eax + 8], 0xfffffade
jmp 0x445fa2
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
test byte [ecx], al
add ecx, 0x140c
mov dword [esp], ecx
mov dword [esp + 4], 0xffffffff
call fcn.004020a0
xor eax, eax
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x38]
mov dword [ebx + 0xc], edx
mov edx, dword [esp + 0x48]
mov dword [ebx + 0x10], edx
mov edx, dword [0x5c2e60]
test edx, edx
jne 0x4462de
mov edx, dword [esp + 0x4c]
mov dword [ebx + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [ebx + 0x18], edx
mov edx, dword [0x5c2e60]
test edx, edx
jne 0x4462c9
mov edx, dword [esp + 0x54]
mov dword [ebx + 0x1c], edx
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x58]
mov dword [ebx + 0x20], edx
test al, al
jne 0x4461fc
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x24], eax
mov edx, dword [esp + 0x40]
mov dword [ebx + 0x28], edx
cmp dword [ebx + 4], eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
mov esi, dword [ebx + 8]
cmp edx, esi
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setl bl
xchg edi, ebx
and ebp, esi
or ebp, edi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4461f2
mov ebp, 7
mov esi, dword [esp + 0x10]
cmp esi, 7
jne 0x4461eb
mov esi, 0xffffffff
cmp ebp, 7
jne 0x446136
inc esi
mov dword [esp + 0x14], ebp
test esi, esi
jne 0x4461cd
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], 6
mov dword [esp + 8], ebp
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4461c6
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x4461bd
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x4461b4
mov dword [eax + 8], 0xfffffade
mov eax, dword [esp + 0x14]
cmp eax, 7
je 0x44619e
add esp, 0x34
ret
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.00434ed0
jmp 0x44619a
mov eax, dword [esp + 0x14]
cmp eax, 7
jmp 0x446198
mov eax, dword [esp + 0x14]
cmp eax, 7
jmp 0x446198
call fcn.00447ab0
jmp 0x446163
mov eax, dword [ebx]
test byte [eax], al
add eax, 0x1408
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.004020a0
mov ebp, dword [esp + 0x14]
jmp 0x446142
xor esi, esi
jmp 0x446130
mov ebp, 8
jmp 0x44611e
mov eax, dword [esp + 0x3c]
mov dword [ebx + 4], eax
mov ecx, dword [esp + 0x40]
mov dword [ebx + 8], ecx
mov edx, dword fs:[0x14]
mov edx, dword [edx]
mov edx, dword [edx + 0x18]
mov edx, dword [edx + 0x54]
mov dword [esp + 0x2c], edx
test byte [edx], al
lea ebp, [edx + 0x13f4]
mov dword [esp + 0x28], ebp
mov dword [esp], ebp
call fcn.004085a0
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call fcn.00445780
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.00408780
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov dword [esp + 4], 6
mov dword [esp + 8], 1
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4462c2
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x4462a9
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x4462a9
mov dword [eax + 8], 0xfffffade
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
call fcn.00434ed0
jmp 0x44619a
call fcn.00447ab0
jmp 0x44627a
lea edi, [ebx + 0x1c]
mov edx, eax
mov eax, dword [esp + 0x54]
call fcn.00453fc0
mov eax, edx
jmp 0x4460cd
lea edi, [ebx + 0x14]
mov edx, eax
mov eax, dword [esp + 0x4c]
call fcn.00453fc0
mov eax, edx
jmp 0x4460b1
test eax, eax
jne 0x446381
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x446373
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445fa2
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445fa2
mov dword [eax + 8], 0xfffffade
jmp 0x445fa2
mov eax, 1
mov ecx, dword [esp + 0x1c]
jmp 0x44608a
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x18]
nop
inc dword [edx + 0x78]
mov ecx, dword [ecx + 0x18]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x30]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], 6
call fcn.00401fb0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4463f9
nop
mov eax, dword fs:[0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 0x78]
lea ebx, [edx - 1]
mov dword [ecx + 0x78], ebx
cmp edx, 1
jne 0x445fa2
movzx ecx, byte [eax + 0x65]
test cl, cl
je 0x445fa2
mov dword [eax + 8], 0xfffffade
jmp 0x445fa2
xor eax, eax
mov ecx, dword [esp + 0x24]
jmp 0x44608a
cmp eax, 5
ja 0x446417
cmp eax, 4
je 0x445fd6
jmp 0x4462fb
cmp eax, 6
je 0x44643b
lea ecx, [eax - 7]
cmp ecx, 1
jbe 0x446381
cmp eax, 9
je 0x445fd6
call fcn.00447ab0
jmp 0x445fa2
mov eax, dword [0x5b1398]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.00454e50
jmp 0x445fa2
mov eax, ebx
mov ecx, dword [esp + 0x40]
jmp 0x445f9a
call fcn.00452780
jmp fcn.00445f50