Function at 0x44ce80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x48fba8
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ae680]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x30], ebx
call fcn.0045ded3
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44cec9
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], ebp
call fcn.0045ded3
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44cef7
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x44], 1
call fcn.0045ded3
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44cf26
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov byte [esp + 0x44], 2
call fcn.0045ded3
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44cf55
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
mov byte [esp + 0x44], 3
call fcn.0045ded3
xor ecx, ecx
cmp eax, ebp
setne cl
cmp ecx, ebp
jne 0x44cf84
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x50], ebp
mov byte [esp + 0x44], 4
mov dword [esp + 0x34], ebp
jle 0x44d255
mov ecx, dword [esp + 0x5c]
mov ebp, 1
mov dword [esp + 0x38], ebp
mov dword [esp + 0x2c], ecx
jmp 0x44cfc0
mov edx, dword [esp + 0x4c]
movzx eax, byte [edx + ebp - 1]
push eax
lea ecx, [esp + 0x2c]
push 0x49f0e8
push ecx
mov byte [esp + 0x23], 0
call fcn.00407320
mov eax, dword [esp + 0x34]
add esp, 0xc
cmp dword [eax - 0xc], 2
jne 0x44cffa
xor eax, eax
lea ebx, [esp + 0x28]
call fcn.00436510
mov eax, dword [esp + 0x28]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x2c]
call fcn.0040b720
push 0
push 0x49b083
lea ecx, [esp + 0x30]
call fcn.00407670
mov edx, ebp
and edx, 0x80000003
jns 0x44d027
dec edx
or edx, 0xfffffffc
inc edx
jne 0x44d049
mov eax, ebp
and eax, 0x8000000f
jns 0x44d037
dec eax
or eax, 0xfffffff0
inc eax
je 0x44d049
push 2
push 0x49da08
lea ecx, [esp + 0x2c]
call fcn.0040b720
cmp dword [esp + 0x50], 0x10
jle 0x44d22e
mov ecx, ebp
and ecx, 0x8000000f
jns 0x44d063
dec ecx
or ecx, 0xfffffff0
inc ecx
jne 0x44d22e
mov esi, dword [esp + 0x2c]
push esi
lea edx, [esp + 0x24]
push 0x49f0ec
push edx
call fcn.00407320
add esi, 0xf
push esi
lea eax, [esp + 0x2c]
push 0x49f0ec
push eax
call fcn.00407320
mov edi, dword [esp + 0x34]
movzx ebp, byte [esp + 0x78]
mov esi, dword [edi - 0xc]
add esp, 0x18
cmp esi, ebp
je 0x44d108
xor ebx, ebx
test esi, esi
jge 0x44d0ab
mov ebx, esi
mov eax, dword [edi - 8]
inc esi
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x44d0cb
push esi
lea ecx, [esp + 0x20]
call fcn.004075c0
mov edi, dword [esp + 0x1c]
mov eax, esi
sub eax, ebx
push eax
add ebx, edi
push ebx
push eax
lea ecx, [ebx + 1]
push ecx
call fcn.0047642f
push eax
call fcn.0040bc40
add esp, 0x14
mov byte [ebx], 0x30
test esi, esi
jl 0x44d3e2
cmp esi, dword [edi - 8]
jg 0x44d3e2
mov dword [edi - 0xc], esi
mov byte [esi + edi], 0
mov esi, dword [edi - 0xc]
cmp esi, ebp
jne 0x44d0a3
mov esi, dword [esp + 0x20]
mov ebx, dword [esi - 0xc]
cmp ebx, ebp
je 0x44d17e
xor ebp, ebp
test ebx, ebx
jge 0x44d11b
mov ebp, ebx
mov eax, dword [esi - 8]
inc ebx
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x44d13b
push ebx
lea ecx, [esp + 0x24]
call fcn.004075c0
mov esi, dword [esp + 0x20]
mov eax, ebx
sub eax, ebp
push eax
add ebp, esi
push ebp
push eax
lea edx, [ebp + 1]
push edx
call fcn.0047642f
push eax
call fcn.0040bc40
add esp, 0x14
mov byte [ebp], 0x30
test ebx, ebx
jl 0x44d3e2
cmp ebx, dword [esi - 8]
jg 0x44d3e2
movzx eax, byte [esp + 0x60]
mov dword [esi - 0xc], ebx
mov byte [ebx + esi], 0
mov ebx, dword [esi - 0xc]
cmp ebx, eax
jne 0x44d113
push 1
push 0x49b3ec
lea ecx, [esp + 0x20]
call fcn.00407670
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.0040b720
push 1
push 0x49f0f0
lea ecx, [esp + 0x20]
call fcn.0040b720
mov eax, dword [edi - 0xc]
push eax
push edi
lea ecx, [esp + 0x20]
call fcn.0040b720
push 3
push 0x49f0f4
lea ecx, [esp + 0x20]
call fcn.0040b720
mov eax, dword [esp + 0x18]
mov ecx, dword [eax - 0xc]
mov ebx, dword [esp + 0x58]
push ecx
push eax
mov ecx, ebx
call fcn.0040b720
mov eax, dword [esp + 0x24]
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.0040b720
push 2
push 0x49cb24
mov ecx, ebx
call fcn.0040b720
push 0
push 0x49b083
lea ecx, [esp + 0x2c]
call fcn.00407670
push 0
push 0x49b083
lea ecx, [esp + 0x20]
call fcn.00407670
inc dword [esp + 0x30]
add dword [esp + 0x2c], 0x10
mov ebp, dword [esp + 0x38]
mov byte [esp + 0x17], 1
mov eax, dword [esp + 0x34]
inc eax
inc ebp
cmp eax, dword [esp + 0x50]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ebp
jl 0x44cfc0
cmp byte [esp + 0x17], 0
jne 0x44d3ec
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x5c]
shl ebx, 4
lea esi, [ebx + eax]
push esi
lea ecx, [esp + 0x24]
push 0x49f0ec
push ecx
call fcn.00407320
add esi, 0xf
push esi
lea edx, [esp + 0x2c]
push 0x49f0ec
push edx
call fcn.00407320
mov edi, dword [esp + 0x34]
movzx ebp, byte [esp + 0x78]
mov esi, dword [edi - 0xc]
add esp, 0x18
cmp esi, ebp
je 0x44d2fa
xor ebx, ebx
test esi, esi
jge 0x44d29d
mov ebx, esi
mov eax, dword [edi - 8]
inc esi
mov ecx, 1
sub ecx, dword [edi - 4]
sub eax, esi
or eax, ecx
jge 0x44d2bd
push esi
lea ecx, [esp + 0x20]
call fcn.004075c0
mov edi, dword [esp + 0x1c]
mov eax, esi
sub eax, ebx
push eax
add ebx, edi
push ebx
push eax
lea eax, [ebx + 1]
push eax
call fcn.0047642f
push eax
call fcn.0040bc40
add esp, 0x14
mov byte [ebx], 0x30
test esi, esi
jl 0x44d3e2
cmp esi, dword [edi - 8]
jg 0x44d3e2
mov dword [edi - 0xc], esi
mov byte [esi + edi], 0
mov esi, dword [edi - 0xc]
cmp esi, ebp
jne 0x44d295
mov esi, dword [esp + 0x20]
mov ebx, dword [esi - 0xc]
cmp ebx, ebp
je 0x44d370
xor ebp, ebp
test ebx, ebx
jge 0x44d30d
mov ebp, ebx
mov eax, dword [esi - 8]
inc ebx
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, ebx
or eax, ecx
jge 0x44d32d
push ebx
lea ecx, [esp + 0x24]
call fcn.004075c0
mov esi, dword [esp + 0x20]
mov eax, ebx
sub eax, ebp
push eax
add ebp, esi
push ebp
push eax
lea ecx, [ebp + 1]
push ecx
call fcn.0047642f
push eax
call fcn.0040bc40
add esp, 0x14
mov byte [ebp], 0x30
test ebx, ebx
jl 0x44d3e2
cmp ebx, dword [esi - 8]
jg 0x44d3e2
movzx eax, byte [esp + 0x60]
mov dword [esi - 0xc], ebx
mov byte [ebx + esi], 0
mov ebx, dword [esi - 0xc]
cmp ebx, eax
jne 0x44d305
push 1
push 0x49b3ec
lea ecx, [esp + 0x20]
call fcn.00407670
mov eax, dword [esi - 0xc]
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.0040b720
push 1
push 0x49f0f0
lea ecx, [esp + 0x20]
call fcn.0040b720
mov eax, dword [edi - 0xc]
push eax
push edi
lea ecx, [esp + 0x20]
call fcn.0040b720
push 3
push 0x49f0f4
lea ecx, [esp + 0x20]
call fcn.0040b720
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx - 0xc]
mov ebx, dword [esp + 0x58]
push eax
push ecx
mov ecx, ebx
call fcn.0040b720
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0xc]
push eax
push ecx
mov ecx, ebx
call fcn.0040b720
jmp 0x44d3f0
push 0x80070057
call fcn.00407700
mov ebx, dword [esp + 0x58]
mov eax, dword [ebx]
mov ebp, dword [esp + 0x54]
push eax
mov ecx, ebp
call fcn.0045b82f
mov edx, dword [ebx]
mov eax, dword [edx - 0xc]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push eax
dec eax
push eax
mov eax, dword [ebp + 0x20]
push 0xb1
push eax
call ebx
mov ecx, dword [ebp + 0x20]
push 0
push 0
push 0xb7
push ecx
call ebx
add edi, 0xfffffff0
mov byte [esp + 0x44], 3
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x44d447
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
add esi, 0xfffffff0
mov byte [esp + 0x44], 2
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d468
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov byte [esp + 0x44], 1
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d48d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x44], 0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d4b2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x44], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44d4da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 0x18