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

Disassembly:
sub esp, 0x98
mov edx, dword [esp + 0xa8]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xa8]
add edx, ecx
cmp dword [esi + 0x75f8], 0
push edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x10], edx
jne 0x446b51
mov ecx, dword [esp + 0xb4]
lea edx, [edi + ecx]
jmp 0x446b57
mov edx, dword [esi + 0x75f0]
mov ebp, dword [esi + 0x74b0]
mov ebx, dword [esi + 0x7574]
mov ecx, dword [esi + 0x7584]
mov dword [esp + 0x68], ebp
mov ebp, dword [esi + 0x74b4]
add ecx, ebx
mov dword [esp + 0x88], ebp
mov ebp, dword [esi + 0x74b8]
mov dword [esp + 0x60], edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x64], ebx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x70], ebp
test eax, eax
je 0x4473ac
mov dword [esi + 0x7508], 1
mov edx, dword [esi + 0x682c]
mov eax, dword [esi + 0x6830]
mov ecx, dword [esi + 0x6834]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0xb8]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x28]
sub eax, edx
push ecx
call fcn.004417a0
add esp, 4
cmp eax, 0xffffff88
jbe 0x446bf5
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
mov edx, dword [esi]
push edx
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x30]
call fcn.00446a70
mov ecx, dword [esi + 8]
push ecx
lea edx, [esp + 0x50]
push edx
call fcn.00446a70
mov eax, dword [esi + 4]
push eax
lea ecx, [esp + 0x60]
push ecx
lea eax, [esp + 0x40]
call fcn.00446a70
mov ebx, dword [esp + 0x5c]
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
add esp, 0x18
jmp 0x446c40
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov eax, dword [edx + edi*8 + 4]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x80], eax
mov eax, dword [edx + ecx*8 + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x48]
mov eax, dword [eax + ebx*8 + 4]
mov dword [esp + 0x10], eax
movzx eax, byte [edx + ecx*8 + 2]
movzx edx, word [edx + ecx*8]
mov dword [esp + 0x94], edx
mov edx, dword [esp + 0x50]
movzx edx, word [edx + edi*8]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x48]
movzx edx, word [edx + ebx*8]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x40]
movzx ecx, byte [edx + ecx*8 + 3]
mov edx, dword [esp + 0x50]
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x50]
movzx eax, byte [eax + edi*8 + 2]
mov dword [esp + 0x98], ecx
movzx ecx, byte [edx + edi*8 + 3]
mov edx, dword [esp + 0x48]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x48]
mov al, byte [eax + ebx*8 + 2]
mov dword [esp + 0x90], ecx
movzx ecx, byte [edx + ebx*8 + 3]
mov dword [esp + 0x6c], ecx
cmp al, 1
jbe 0x446df7
cmp dword [esp + 0xbc], 0
je 0x446d7a
cmp al, 0x19
jb 0x446d7a
movzx edi, al
mov ecx, esi
and ecx, 0x1f
sub edi, 5
mov eax, ebp
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
add esi, edi
mov edi, dword [esp + 0x30]
shl eax, 5
add eax, dword [esp + 0x10]
mov edx, eax
cmp esi, 0x20
ja 0x446d63
cmp edi, dword [esp + 0x38]
jb 0x446d39
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x446d59
mov ecx, dword [esp + 0x34]
cmp edi, ecx
je 0x446d63
mov eax, esi
shr eax, 3
mov ebx, edi
sub ebx, eax
cmp ebx, ecx
jae 0x446d52
mov eax, edi
sub eax, ecx
sub edi, eax
neg eax
lea esi, [esi + eax*8]
mov ebp, dword [edi]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], edi
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
add esi, 5
shr eax, 0x1b
add edx, eax
mov dword [esp + 0x18], edx
jmp 0x446de1
movzx edi, al
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x10]
add esi, edi
mov edi, dword [esp + 0x30]
lea edx, [eax + ecx]
mov dword [esp + 0x18], edx
cmp esi, 0x20
ja 0x446de1
cmp edi, dword [esp + 0x38]
jb 0x446db7
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x446dd7
mov ecx, dword [esp + 0x34]
cmp edi, ecx
je 0x446de1
mov eax, esi
shr eax, 3
mov ebx, edi
sub ebx, eax
cmp ebx, ecx
jae 0x446dd0
mov eax, edi
sub eax, ecx
sub edi, eax
neg eax
lea esi, [esi + eax*8]
mov ebp, dword [edi]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], edi
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], edx
jmp 0x446e74
xor ecx, ecx
cmp dword [esp + 0x18], ecx
sete cl
mov edi, ecx
test al, al
jne 0x446e23
mov eax, dword [esp + edi*4 + 0x54]
xor edx, edx
test edi, edi
sete dl
mov dword [esp + 0x18], eax
mov ecx, dword [esp + edx*4 + 0x54]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], eax
jmp 0x446e70
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
inc esi
mov dword [esp + 0x2c], esi
shr eax, 0x1f
add eax, edi
add eax, dword [esp + 0x10]
cmp eax, 3
jne 0x446e46
mov ecx, dword [esp + 0x54]
dec ecx
jmp 0x446e4a
mov ecx, dword [esp + eax*4 + 0x54]
xor edx, edx
test ecx, ecx
sete dl
add ecx, edx
cmp eax, 1
je 0x446e60
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x54], ecx
mov edi, dword [esp + 0x30]
mov bl, byte [esp + 0x27]
mov ecx, dword [esp + 0x34]
test bl, bl
jbe 0x446ea2
mov ecx, esi
and ecx, 0x1f
movzx edx, bl
mov eax, ebp
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x34]
add esi, edx
add dword [esp + 0x80], eax
movzx edx, byte [esp + 0x17]
movzx eax, bl
add eax, edx
cmp eax, 0x14
jl 0x446eee
cmp esi, 0x20
ja 0x446eee
cmp edi, dword [esp + 0x38]
jb 0x446ec8
mov eax, esi
shr eax, 3
sub edi, eax
and esi, 7
jmp 0x446ee4
cmp edi, ecx
je 0x446eee
mov eax, esi
shr eax, 3
mov ebx, edi
sub ebx, eax
cmp ebx, ecx
jae 0x446edd
mov eax, edi
sub eax, ecx
sub edi, eax
neg eax
lea esi, [esi + eax*8]
mov ebp, dword [edi]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], edi
cmp byte [esp + 0x17], 0
jbe 0x446f19
mov ecx, esi
and ecx, 0x1f
mov eax, ebp
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x34]
add esi, edx
mov edx, dword [esp + 0x7c]
add edx, eax
mov dword [esp + 0x7c], edx
jmp 0x446f1d
mov edx, dword [esp + 0x7c]
cmp esi, 0x20
ja 0x446f5a
cmp edi, dword [esp + 0x38]
jb 0x446f34
mov ecx, esi
shr ecx, 3
sub edi, ecx
and esi, 7
jmp 0x446f50
cmp edi, ecx
je 0x446f5a
mov eax, esi
shr eax, 3
mov ebx, edi
sub ebx, eax
cmp ebx, ecx
jae 0x446f49
mov eax, edi
sub eax, ecx
sub edi, eax
neg eax
lea esi, [esi + eax*8]
mov ebp, dword [edi]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], edi
mov ebx, dword [esp + 0x98]
add esi, ebx
mov ecx, esi
neg ecx
and ecx, 0x1f
mov eax, ebp
shr eax, cl
movzx ecx, word [esp + 0x94]
and eax, dword [ebx*4 + 0x456860]
mov ebx, dword [esp + 0x90]
add ecx, eax
add esi, ebx
mov dword [esp + 0x3c], ecx
mov ecx, esi
neg ecx
and ecx, 0x1f
mov eax, ebp
shr eax, cl
mov ecx, esi
movzx esi, word [esp + 0x78]
and eax, dword [ebx*4 + 0x456860]
add esi, eax
mov dword [esp + 0x4c], esi
cmp ecx, 0x20
ja 0x446fec
cmp edi, dword [esp + 0x38]
jb 0x446fc2
mov eax, ecx
shr eax, 3
sub edi, eax
and ecx, 7
jmp 0x446fe2
mov esi, dword [esp + 0x34]
cmp edi, esi
je 0x446fec
mov eax, ecx
shr eax, 3
mov ebx, edi
sub ebx, eax
cmp ebx, esi
jae 0x446fdb
mov eax, edi
sub eax, esi
sub edi, eax
neg eax
lea ecx, [ecx + eax*8]
mov ebp, dword [edi]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x6c]
movzx ebx, word [esp + 0x20]
lea esi, [ecx + edi]
movq xmm0, qword [esp + 0x7c]
mov ecx, esi
neg ecx
and ecx, 0x1f
mov eax, ebp
shr eax, cl
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0x80]
and eax, dword [edi*4 + 0x456860]
add ecx, edx
add ebx, eax
mov eax, dword [esp + 0x1c]
lea edi, [edx + eax]
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], ecx
lea ecx, [edx + eax]
mov eax, edi
sub eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], ebx
movq qword [esp + 0x9c], xmm0
mov dword [esp + 0x78], ecx
cmp ecx, dword [esp + 0x74]
ja 0x44728e
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add ecx, edx
mov edx, dword [esp + 0x60]
add edx, 0xffffffe0
cmp ecx, edx
ja 0x44728e
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
sub ecx, dword [esp + 0x1c]
add edx, 0x20
cmp ecx, edx
jb 0x44728e
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
movdqu xmm0, xmmword [edx]
movdqu xmmword [ecx], xmm0
cmp ebp, 0x10
jbe 0x4470f1
movdqu xmm0, xmmword [edx + 0x10]
add ebp, 0xfffffff0
add ecx, 0x10
mov dword [esp + 0x20], ebp
add edx, 0x10
add ebp, ecx
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x6c], ebp
movdqu xmmword [ecx], xmm0
jle 0x4470f1
add ecx, 0x10
add edx, 0x10
nop
movdqu xmm0, xmmword [edx]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [edx + 0x10]
add edx, 0x10
add ecx, 0x10
movdqu xmmword [ecx], xmm0
add ecx, 0x10
add edx, 0x10
cmp ecx, ebp
jb 0x4470d0
mov ecx, dword [esp + 0x78]
mov edx, edi
sub edx, dword [esp + 0x68]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x18]
cmp ecx, edx
jbe 0x44716b
mov edx, edi
sub edx, dword [esp + 0x88]
cmp ecx, edx
ja 0x446be5
mov ecx, dword [esp + 0x70]
mov ebp, dword [esp + 0x80]
mov edx, ecx
sub edx, dword [esp + 0x68]
add eax, edx
lea edx, [eax + ebp]
cmp edx, ecx
ja 0x44714b
push ebp
push eax
push edi
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x34]
add esp, 0xc
jmp 0x4472cd
sub ecx, eax
push ecx
push eax
push edi
mov dword [esp + 0x2c], ecx
call dword [sym.imp.MSVCRT.dll_memmove]
mov eax, dword [esp + 0x2c]
add edi, eax
add esp, 0xc
sub ebp, eax
mov eax, dword [esp + 0x68]
jmp 0x447172
mov ebp, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
cmp ecx, 0x10
jb 0x4471ce
cmp ebp, 0x10
movdqu xmm0, xmmword [eax]
lea ecx, [edi + ebp]
movdqu xmmword [edi], xmm0
jle 0x4471c1
add edi, 0x10
add eax, 0x10
jmp 0x4471a0
movdqu xmm0, xmmword [eax]
movdqu xmmword [edi], xmm0
movdqu xmm0, xmmword [eax + 0x10]
add eax, 0x10
add edi, 0x10
movdqu xmmword [edi], xmm0
add edi, 0x10
add eax, 0x10
cmp edi, ecx
jb 0x4471a0
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
jmp 0x4472cd
cmp ecx, 8
jae 0x447207
mov edx, dword [ecx*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x20], edx
movzx edx, byte [eax]
mov byte [edi], dl
movzx edx, byte [eax + 1]
mov byte [edi + 1], dl
movzx edx, byte [eax + 2]
mov byte [edi + 2], dl
movzx edx, byte [eax + 3]
mov byte [edi + 3], dl
add eax, dword [ecx*4 + 0x457298]
mov ecx, dword [eax]
sub eax, dword [esp + 0x20]
jmp 0x44720e
mov edx, dword [eax]
mov dword [edi], edx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
cmp ebp, 8
jbe 0x447284
lea ecx, [eax + 8]
lea edx, [ebp - 8]
lea eax, [edi + 8]
mov ebp, eax
sub ebp, ecx
cmp ebp, 0x10
lea edi, [eax + edx]
jge 0x447250
sub ecx, eax
lea ecx, [ecx]
mov edx, dword [ecx + eax]
mov dword [eax], edx
mov edx, dword [ecx + eax + 4]
mov dword [eax + 4], edx
add eax, 8
cmp eax, edi
jb 0x447230
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
jmp 0x4472cd
cmp edx, 0x10
movdqu xmm0, xmmword [ecx]
movdqu xmmword [eax], xmm0
jle 0x447284
add eax, 0x10
add ecx, 0x10
movdqu xmm0, xmmword [ecx]
movdqu xmmword [eax], xmm0
movdqu xmm0, xmmword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
movdqu xmmword [eax], xmm0
add eax, 0x10
add ecx, 0x10
cmp eax, edi
jb 0x447263
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
jmp 0x4472cd
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x68]
push eax
mov eax, dword [esp + 0x78]
push ecx
push edx
mov edx, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x74]
push ecx
sub esp, 0xc
mov eax, esp
movq qword [eax], xmm0
mov dword [eax + 8], edx
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x3c]
call fcn.00446890
add esp, 0x20
cmp eax, 0xffffff88
ja 0x4473e0
add dword [esp + 0x1c], eax
sub dword [esp + 0x8c], 1
je 0x447351
cmp esi, 0x20
ja 0x446c40
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jb 0x447314
mov ecx, esi
shr ecx, 3
sub eax, ecx
mov ebp, dword [eax]
and esi, 7
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebp
jmp 0x446c40
cmp eax, dword [esp + 0x34]
je 0x446c40
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov eax, esi
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, edx
jae 0x447337
mov eax, ecx
sub eax, edx
sub ecx, eax
mov ebp, dword [ecx]
neg eax
lea esi, [esi + eax*8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], ebp
jmp 0x446c40
cmp esi, 0x20
ja 0x447377
mov eax, dword [esp + 0x30]
cmp eax, dword [esp + 0x38]
jae 0x446be5
cmp eax, dword [esp + 0x34]
jne 0x446be5
cmp esi, 0x20
jb 0x446be5
mov eax, dword [esp + 0xac]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x1c]
mov dword [eax + 0x682c], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + 0x6830], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x6834], edx
mov edx, dword [esp + 0x60]
sub ecx, ebx
mov esi, ecx
sub edx, edi
cmp esi, edx
jbe 0x4473c6
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
test edi, edi
je 0x4473d7
push esi
push ebx
push edi
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add edi, esi
sub edi, dword [esp + 0xb0]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret