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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x110
mov edi, dword [ebp + 0x24]
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x24], ecx
sub esi, ecx
mov eax, edi
sbb eax, dword [ebp + 0x1c]
pxor xmm0, xmm0
movdqa xmmword [esp + 0xf0], xmm0
movdqa xmmword [esp + 0xe0], xmm0
movdqa xmmword [esp + 0xd0], xmm0
movdqa xmmword [esp + 0xc0], xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
movdqa xmmword [esp + 0x90], xmm0
movdqa xmmword [esp + 0x80], xmm0
mov ebx, 0x16
jae 0x444100
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
test edx, edx
je 0x444246
mov eax, dword [edx + 0x20]
test eax, 0x10000000
jne 0x4441ee
test eax, 0x80000
mov dword [esp + 0x1c], edx
jne 0x444272
cmp dword [ebp + 0x1c], 0
jne 0x4449db
xor eax, eax
mov ecx, 0xfffffffe
mov esi, dword [ebp + 0x20]
cmp ecx, esi
mov edx, 0
sbb edx, edi
mov ebx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x18]
jb 0x444161
sub esi, edx
sbb edi, dword [ebp + 0x1c]
add esi, 1
adc edi, 0
cmp ecx, esi
sbb eax, edi
jae 0x444165
mov esi, edx
not esi
xor edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x14]
mov eax, 0
mov dword [esp + 0xc], ebx
test ebx, ebx
mov edx, dword [esp + 0x1c]
je 0x44480e
mov dword [esp + 0x18], eax
mov eax, 0xb
mov ebx, dword [ebp + 0x18]
cmp eax, ebx
mov eax, dword [ebp + 0x1c]
sbb edi, eax
jb 0x444848
mov dword [esp + 8], ecx
mov edi, eax
lea eax, [edx + 0x28]
mov ecx, dword [ebp + 8]
push 0xc
push 0
push esi
push edi
push ebx
push 0
push eax
push dword [esp + 0x28]
call fcn.004449f0
add esp, 0x20
mov ecx, ebx
mov ebx, eax
test eax, eax
jne 0x444980
xor ebx, ebx
cmp esi, 0xd
jb 0x444980
add esi, ecx
add esi, 0xfffffff4
mov dword [esp + 4], esi
xor edi, edi
xor eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x444854
xor ebx, ebx
mov eax, dword [ebp + 0x1c]
or dword [esp + 0x24], eax
jne 0x4440f6
pxor xmm0, xmm0
movdqu xmmword [edx + 0x54], xmm0
movdqu xmmword [edx + 0x48], xmm0
movdqu xmmword [edx + 0x38], xmm0
movdqu xmmword [edx + 0x28], xmm0
mov dword [edx + 4], 0
push edx
push ecx
push dword [ebp + 8]
mov esi, ecx
call fcn.0041b2f0
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x4440f6
push esi
push dword [ebp + 8]
call fcn.00429ba0
add esp, 8
jmp 0x4449e8
lea edi, [esp + 0x80]
push edi
push ecx
push dword [ebp + 8]
mov ebx, ecx
call fcn.0041afb0
mov edx, edi
mov edi, dword [ebp + 0x24]
mov ecx, ebx
add esp, 0xc
mov ebx, eax
test eax, eax
jne 0x4440f6
jmp 0x44410e
mov dword [esp + 0x10], 0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x30], xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea eax, [esp + 0x10]
push eax
push edx
push ecx
mov edi, dword [ebp + 8]
push edi
call fcn.00415040
add esp, 0x10
mov ebx, eax
test eax, eax
jne 0x4449cc
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [esp + 0x18]
call fcn.00415a40
add esp, 0xc
lea eax, [esp + 0x30]
push eax
push 0
push dword [esp + 0x18]
call fcn.00415320
add esp, 0xc
cmp eax, 0x7f2bb780
je 0x4448b6
mov ebx, eax
test eax, eax
jne 0x4449c0
mov eax, dword [ebp + 0x20]
mov ecx, eax
add ecx, 1
mov dword [esp + 0x74], ecx
mov ecx, dword [ebp + 0x24]
adc ecx, 0
mov dword [esp + 0x70], ecx
not eax
mov dword [esp + 0x78], eax
add esi, 1
mov dword [esp + 0x28], 0
mov dword [esp + 0x7c], esi
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov edi, ecx
mov dword [esp + 0xc], edx
add edi, edx
mov edx, eax
adc edx, 0
mov ebx, dword [ebp + 0x18]
cmp ecx, ebx
mov esi, eax
sbb esi, dword [ebp + 0x1c]
mov dword [esp + 4], ecx
jae 0x444432
mov dword [esp + 0x14], eax
mov esi, edi
add esi, 0xffffffff
mov ecx, edi
mov edi, edx
adc edi, 0xffffffff
cmp dword [ebp + 0x20], esi
mov esi, dword [ebp + 0x24]
sbb esi, edi
jae 0x44449a
mov edi, dword [esp + 0x30]
mov eax, ecx
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 4]
sub ecx, ebx
mov edx, dword [esp + 0x70]
sbb edx, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
add ecx, edi
adc edx, esi
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x5c], ecx
add eax, dword [esp + 0x78]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0x18]
sub eax, ebx
add edi, eax
mov dword [esp + 8], edi
adc esi, 0
mov dword [esp + 0xc], esi
mov dword [esp + 0x40], eax
add ebx, eax
mov dword [esp + 4], ebx
adc dword [esp + 0x14], 0
lea eax, [esp + 0x50]
push eax
push 1
push dword [esp + 0x18]
call fcn.00416410
add esp, 0xc
test eax, eax
mov esi, dword [esp + 0x7c]
jne 0x4449be
push dword [esp + 0x10]
call fcn.00415a60
add esp, 4
test eax, eax
jne 0x4449be
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x18]
call fcn.00415a40
add esp, 0xc
test eax, eax
jne 0x4449be
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], esi
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
jmp 0x4444e4
mov ebx, dword [ebp + 0x20]
sub ebx, ecx
mov ecx, dword [ebp + 0x24]
mov esi, ecx
sbb esi, eax
jb 0x4449a3
add ebx, 1
cmp dword [ebp + 0x20], edi
sbb ecx, edx
mov ecx, dword [esp + 0x30]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0xc]
cmovae ebx, edx
mov ecx, dword [esp + 0x34]
sub edx, ebx
mov dword [esp + 0x40], edx
mov edi, dword [esp + 4]
movd xmm0, edi
movd xmm1, eax
punpckldq xmm0, xmm1
movdqa xmm1, xmmword [esp + 0x30]
punpcklqdq xmm1, xmm0
mov dword [esp + 0x18], ebx
movd xmm0, ebx
pshufd xmm0, xmm0, 0x44
paddq xmm0, xmm1
movdqa xmmword [esp + 0x30], xmm0
mov esi, eax
jmp 0x4444e4
mov ebx, 7
mov eax, dword [ebp + 0x18]
cmp eax, ecx
mov ecx, dword [ebp + 0x1c]
sbb ecx, edx
mov edi, dword [ebp + 8]
jae 0x4447dd
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 4]
sub eax, edi
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add ecx, eax
mov dword [esp + 8], ecx
mov ecx, edx
adc ecx, 0
add edi, eax
mov esi, dword [esp + 0x14]
adc esi, 0
sub ebx, eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], eax
mov edx, eax
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edi
test edx, edx
mov dword [esp + 0x14], esi
je 0x444530
lea eax, [esp + 0x30]
push eax
push 0
push dword [esp + 0x18]
call fcn.00415d30
add esp, 0xc
test eax, eax
jne 0x4449be
push dword [esp + 0x10]
call fcn.00415a60
add esp, 4
mov dword [esp + 0x2c], 7
test eax, eax
je 0x444601
jmp 0x4449be
pxor xmm0, xmm0
movdqa xmmword [esp + 0x50], xmm0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
lea esi, [esp + 0x50]
push esi
push 0
push dword [esp + 0x18]
call fcn.00415320
add esp, 0xc
test eax, eax
jne 0x4449be
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
push esi
push 7
push dword [esp + 0x18]
call fcn.00415320
mov ecx, ebx
add esp, 0xc
mov ebx, eax
mov eax, edi
mov esi, edi
mov edi, ecx
cmp ebx, 0x7f2bb77c
je 0x44459e
test ebx, ebx
jne 0x4449c0
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x5c]
push ecx
push eax
push dword [esp + 0x18]
call fcn.00415a40
add esp, 0xc
test eax, eax
jne 0x4449be
push 0
push dword [esp + 0x14]
call fcn.004165e0
add esp, 8
test eax, eax
jne 0x4449be
push dword [esp + 0x10]
call fcn.00415a60
add esp, 4
test eax, eax
je 0x4445e7
mov ebx, eax
cmp eax, 0x7f2bb780
jne 0x4449c0
push edi
push esi
push dword [esp + 0x18]
call fcn.00415a40
add esp, 0xc
mov dword [esp + 0x2c], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x4446c4
mov eax, 0xffffffff
shl eax, cl
not eax
mov edx, dword [esp + 8]
and edx, eax
sar eax, 0x1f
and eax, dword [esp + 0xc]
or eax, edx
lea ebx, [esp + 0x50]
je 0x44470e
push ebx
push esi
push dword [esp + 0xc]
push dword [esp + 0x28]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00435f50
add esp, 0x18
test eax, eax
jne 0x4449be
mov eax, dword [esp + 0x50]
xor ecx, ecx
or eax, dword [esp + 0x54]
jne 0x444687
push 0xffffffffffffffff
push dword [esp + 0x10]
push dword [esp + 0x10]
push dword [ebp + 8]
call fcn.00410820
add esp, 0x10
mov ecx, 1
mov dword [esp + 0x20], ecx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x64]
mov eax, 1
shl eax, cl
lea edx, [eax - 1]
mov ebx, dword [esp + 8]
and edx, ebx
sub eax, edx
mov esi, dword [esp + 0x18]
cmp eax, esi
cmova eax, esi
sub esi, eax
add ebx, eax
mov dword [esp + 8], ebx
adc dword [esp + 0xc], 0
add dword [esp + 4], eax
adc dword [esp + 0x14], 0
jmp 0x44471a
cmp dword [esp + 0x18], 0
mov edx, eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
je 0x4446ff
mov esi, dword [esp + 0x18]
mov ebx, eax
mov edi, ecx
nop dword [eax]
add ebx, 1
adc edi, 0
push 0xffffffffffffffff
push ecx
push eax
push edx
call fcn.00410820
mov edx, dword [ebp + 8]
add esp, 0x10
mov eax, ebx
mov ecx, edi
add esi, 0xffffffff
jne 0x4446e0
mov eax, dword [esp + 0x18]
add dword [esp + 0x28], eax
mov edi, edx
jmp 0x4447d9
mov dword [esp + 0x20], 0
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4447ce
mov edx, dword [esp + 0x1c]
nop word cs:[eax + eax]
mov eax, esi
shr eax, cl
test eax, eax
je 0x444789
push 0xffffffffffffffff
mov edi, dword [esp + 0x10]
push edi
mov ebx, dword [esp + 0x10]
push ebx
mov eax, dword [ebp + 8]
mov dword [esp + 0x24], esi
mov esi, eax
push eax
call fcn.00410820
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov ecx, dword [esi + 0x64]
mov esi, dword [esp + 0x18]
mov eax, 1
shl eax, cl
add dword [esp + 0x20], 1
add ebx, eax
mov dword [esp + 8], ebx
adc edi, 0
mov dword [esp + 0xc], edi
add dword [esp + 4], eax
adc dword [esp + 0x14], 0
sub esi, eax
jne 0x444730
jmp 0x4447ce
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x18]
push dword [esp + 0xc]
push edx
push dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push edi
call fcn.00435f50
add esp, 0x18
mov ebx, eax
test eax, eax
jne 0x4447fc
mov eax, dword [esp + 0x54]
or eax, dword [esp + 0x50]
jne 0x4447fc
push 0xffffffffffffffff
push dword [esp + 0x10]
push dword [esp + 0x10]
push edi
call fcn.00410820
add esp, 0x10
add dword [esp + 0x20], 1
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], eax
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x2c]
lea eax, [esp + 0x30]
push eax
push ebx
push dword [esp + 0x18]
call fcn.00415320
add esp, 0xc
test eax, eax
je 0x444316
jmp 0x444990
test ebx, ebx
jne 0x4449c0
mov eax, dword [esp + 0x20]
add dword [esp + 0x28], eax
jmp 0x4447d9
mov ebx, 0x7f2bb746
cmp ecx, 0x55555555
ja 0x4440f6
lea eax, [ecx + ecx*2]
push eax
mov dword [esp + 0xc], ecx
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x20]
add esp, 4
mov dword [esp + 0xc], eax
test eax, eax
jne 0x444182
jmp 0x4440f6
add ebx, 0xfffffff4
adc eax, 0xffffffff
mov edi, ebx
mov dword [esp + 4], esi
shr ecx, 2
mov ebx, edi
sub edi, ecx
mov esi, eax
sbb eax, 0
mov dword [esp + 8], ecx
jae 0x4448bd
lea eax, [edx + 0x58]
mov dword [esp + 0x24], eax
mov ecx, dword [ebp + 8]
push 1
push 0
push dword [esp + 0xc]
push esi
push ebx
push 1
push dword [esp + 0x3c]
push dword [esp + 0x28]
call fcn.004449f0
add esp, 0x20
mov ecx, dword [esp + 4]
mov ebx, eax
test eax, eax
jne 0x444980
xor ebx, ebx
cmp dword [esp + 8], ecx
jae 0x444980
add ecx, edi
mov dword [esp + 4], ecx
xor edi, edi
xor esi, esi
mov ecx, dword [esp + 8]
jmp 0x4448c4
xor ebx, ebx
jmp 0x4449c0
mov edi, ebx
sub edi, ecx
sbb esi, 0
mov eax, ecx
mul ecx
mov ecx, eax
mov ebx, edx
mov dword [esp + 0x24], edi
sub edi, eax
mov eax, esi
sbb eax, edx
jae 0x444932
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x1c]
lea eax, [edx + 0x5c]
mov ecx, dword [ebp + 8]
push 1
push 0
mov ebx, dword [esp + 0xc]
push ebx
push esi
push dword [esp + 0x34]
push 2
push eax
push dword [esp + 0x28]
call fcn.004449f0
add esp, 0x20
mov ecx, ebx
mov ebx, eax
test eax, eax
jne 0x444980
xor ebx, ebx
cmp dword [esp + 0x20], ecx
mov eax, dword [esp + 0x14]
sbb eax, 0
jae 0x444980
add ecx, edi
mov dword [esp + 4], ecx
xor edi, edi
xor esi, esi
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
jmp 0x44493c
mov edi, dword [esp + 0x24]
sub edi, ecx
sbb esi, ebx
mov eax, ecx
mov edx, dword [esp + 8]
imul ebx, edx
mul edx
add ebx, edx
mov edx, ebx
xor ebx, ebx
mov dword [esp + 0x24], edi
cmp edi, eax
mov eax, esi
sbb eax, edx
mov edi, dword [esp + 4]
jae 0x444980
mov edx, dword [esp + 0x1c]
lea eax, [edx + 0x60]
mov ecx, dword [ebp + 8]
push 1
push 0
push edi
push esi
push dword [esp + 0x34]
push 3
push eax
push dword [esp + 0x28]
call fcn.004449f0
add esp, 0x20
mov ebx, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4449cc
push eax
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x4449c9
mov ebx, eax
cmp eax, 0x7f2bb780
je 0x4449a6
cmp ebx, 0x7f2bb77c
je 0x4449a6
jmp 0x4449c0
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x28]
mov eax, ecx
sar eax, 0x1f
push eax
push ecx
push dword [esp + 0x24]
push edi
call fcn.00418c90
add esp, 0x10
mov ebx, eax
push dword [esp + 0x10]
call fcn.00414fa0
add esp, 4
mov ecx, dword [ebp + 0xc]
test ebx, ebx
mov edx, dword [esp + 0x1c]
jne 0x4440f6
push edx
push ecx
push dword [ebp + 8]
call fcn.0041b2f0
add esp, 0xc
mov ebx, eax
jmp 0x4440f6