Function at 0x443770
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x51fc85
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x55609c]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
push edi
mov eax, dword [0x55609c]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, ecx
mov dword [esp + 0x28], eax
push str.mapped_files
mov eax, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], esi
call fcn.0044d820
mov ebx, eax
test ebx, ebx
je 0x4438c6
mov ecx, dword [ebx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x4438c6
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
mov edx, dword [ebx + 0xc]
jne 0x4437fd
xor eax, eax
jmp 0x443805
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp edx, eax
jne 0x4438c6
push 0x90
call sub.MSVCR80.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
mov dword [esp + 0x98], 0
je 0x443839
mov edx, dword [edi + 0x34]
push edx
push eax
call fcn.00403bd0
jmp 0x44383b
xor eax, eax
mov dword [esp + 0x98], 0xffffffff
mov esi, dword [edi + 0x30]
test esi, esi
mov dword [edi + 0x30], eax
je 0x44385f
push esi
call fcn.00401500
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor esi, esi
mov eax, dword [edi + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x44386f
xor eax, eax
jmp 0x443877
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 5
cmp esi, eax
jge 0x4438c2
mov eax, esi
lea edx, [esp + 0x64]
mov ecx, ebx
call fcn.0044da70
mov dword [esp + 0x98], 1
cmp dword [esp + 0x78], 0
je 0x4438a8
mov eax, dword [edi + 0x30]
push esi
push eax
lea eax, [esp + 0x6c]
call fcn.00417310
lea ecx, [esp + 0x64]
mov dword [esp + 0x98], 0xffffffff
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
add esi, 1
jmp 0x443861
mov esi, dword [esp + 0x20]
push str.file_priority
mov eax, esi
call fcn.0044d820
mov edi, eax
test edi, edi
je 0x44399b
mov eax, dword [edi + 0x10]
and eax, 0xe0000000
cmp eax, 0x40000000
jne 0x44399b
mov edx, dword [esp + 0x24]
mov ecx, dword [edx + 0x30]
test ecx, ecx
mov eax, dword [edi + 0xc]
jne 0x443900
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 4]
test edx, edx
jne 0x44390b
xor ecx, ecx
jmp 0x443913
mov ecx, dword [ecx + 8]
sub ecx, edx
sar ecx, 5
cmp eax, ecx
jne 0x44399b
mov ebx, dword [esp + 0x24]
add ebx, 0x38
push 0
mov ecx, ebx
call fcn.0044aee0
xor esi, esi
cmp dword [edi + 0xc], esi
jle 0x44399b
mov dword [esp + 0x18], esi
mov edx, dword [edi]
add edx, dword [esp + 0x18]
je 0x44395e
mov ecx, dword [edx + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x44395e
call fcn.0044d450
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
jmp 0x44396e
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], 0
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x44397e
mov eax, dword [ebx + 8]
sub eax, ecx
cmp esi, eax
jb 0x443984
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [ebx + 4]
mov al, byte [esp + 0x2c]
add dword [esp + 0x18], 0x14
mov byte [esi + edx], al
add esi, 1
cmp esi, dword [edi + 0xc]
jl 0x443936
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov eax, dword [esp + 0x20]
push str.file_sizes
mov dword [esp + 0x9c], 2
call fcn.0044d820
mov ecx, eax
cmp ecx, ebx
mov dword [esp + 0x2c], ecx
je 0x4439df
mov edx, dword [ecx + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
je 0x443a17
mov eax, 1
test byte [0x55daa8], al
jne 0x443a0d
or dword [0x55daa8], eax
push 0x52ce60
mov dword [0x55daac], 0x52fbdc
call fcn.005150d5
mov esi, dword [esp + 0x3c]
add esp, 4
mov eax, 0x82
jmp 0x443ea7
cmp dword [ecx + 0xc], ebx
mov dword [esp + 0x44], ebx
jle 0x443b01
mov dword [esp + 0x18], ebx
mov eax, dword [ecx]
add eax, dword [esp + 0x18]
mov edx, dword [eax + 0x10]
and edx, 0xe0000000
cmp edx, 0x40000000
jne 0x443ad5
cmp dword [eax + 0xc], 2
jne 0x443ad5
mov esi, dword [eax]
mov eax, dword [esi + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x443ad5
mov edx, dword [esi + 0x24]
and edx, 0xe0000000
cmp edx, eax
jne 0x443ad5
lea edx, [esi + 0x14]
cmp edx, ebx
je 0x443a8c
mov eax, dword [edx + 0x10]
and eax, 0xe0000000
cmp eax, 0x80000000
jne 0x443a8c
call fcn.0044d450
mov ebx, eax
mov edi, edx
jmp 0x443a90
xor ebx, ebx
xor edi, edi
test esi, esi
je 0x443aae
mov ecx, dword [esi + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x80000000
jne 0x443aae
mov edx, esi
call fcn.0044d450
jmp 0x443ab2
xor eax, eax
xor edx, edx
mov dword [esp + 0x6c], ebx
lea ebx, [esp + 0x64]
lea esi, [esp + 0x34]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x70], edi
call fcn.0044aa00
mov ecx, dword [esp + 0x2c]
xor ebx, ebx
mov eax, dword [esp + 0x44]
add dword [esp + 0x18], 0x14
add eax, 1
cmp eax, dword [ecx + 0xc]
mov dword [esp + 0x44], eax
jl 0x443a28
mov esi, dword [esp + 0x38]
cmp esi, ebx
je 0x443b01
mov edx, dword [esp + 0x3c]
sub edx, esi
sar edx, 4
jne 0x443b39
mov eax, 1
test byte [0x55daa8], al
jne 0x443b2f
or dword [0x55daa8], eax
push 0x52ce60
mov dword [0x55daac], 0x52fbdc
call fcn.005150d5
mov esi, dword [esp + 0x3c]
add esp, 4
mov eax, 0x83
jmp 0x443ea7
mov edi, dword [esp + 0x20]
push str.slots
mov eax, edi
mov byte [esp + 0x1b], 0
call fcn.0044d820
cmp eax, ebx
je 0x443bc6
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x40000000
jne 0x443bc6
mov edx, dword [esp + 0x24]
mov ebx, dword [eax + 0xc]
mov ecx, dword [edx + 0x34]
cmp ebx, dword [ecx + 0x88]
jne 0x443c24
xor edi, edi
test ebx, ebx
mov byte [esp + 0x17], 1
jle 0x443c24
mov esi, dword [eax]
lea ebx, [ebx]
test esi, esi
je 0x443c1f
mov edx, dword [esi + 0x10]
and edx, 0xe0000000
cmp edx, 0x80000000
jne 0x443c1f
mov edx, esi
call fcn.0044d450
test edx, edx
jl 0x443c1f
jg 0x443bba
test eax, eax
jb 0x443c1f
add edi, 1
add esi, 0x14
cmp edi, ebx
jl 0x443b90
jmp 0x443c24
push str.pieces
mov eax, edi
call fcn.0044d820
cmp eax, ebx
je 0x443e74
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x60000000
jne 0x443e74
mov edx, dword [esp + 0x24]
mov ecx, dword [eax + 0xc]
mov edx, dword [edx + 0x34]
cmp ecx, dword [edx + 0x88]
jne 0x443c24
mov edx, dword [eax]
xor eax, eax
cmp ecx, ebx
mov byte [esp + 0x17], 1
jle 0x443c24
mov edi, edi
test byte [eax + edx], 1
je 0x443c1f
add eax, 1
cmp eax, ecx
jl 0x443c10
jmp 0x443c24
mov byte [esp + 0x17], 0
mov eax, dword [esp + 0x20]
push eax
mov eax, str.allocation
lea ecx, [esp + 0x4c]
mov byte [esp + 0x23], 0
call fcn.0044d700
push str.compact
push eax
mov byte [esp + 0xa0], 3
call dword [sym.imp.MSVCP80.dll_bool___cdecl_std::operator__char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___char_const__]
add esp, 8
lea ecx, [esp + 0x48]
mov bl, al
mov byte [esp + 0x98], 2
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
test bl, bl
je 0x443c70
mov byte [esp + 0x1f], 1
cmp byte [esp + 0x17], 0
je 0x443e0d
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x443c89
mov eax, dword [ecx + 0x34]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x443c94
xor edx, edx
jmp 0x443c9c
mov edx, dword [eax + 8]
sub edx, ecx
sar edx, 5
mov ecx, dword [esp + 0x38]
test ecx, ecx
mov edi, dword [esp + 0x3c]
jne 0x443cac
xor eax, eax
jmp 0x443cb3
mov eax, edi
sub eax, ecx
sar eax, 4
cmp edx, eax
je 0x443d03
test byte [0x55daa8], 1
jne 0x443ce2
or dword [0x55daa8], 1
push 0x52ce60
mov dword [0x55daac], 0x52fbdc
call fcn.005150d5
mov ecx, dword [esp + 0x3c]
add esp, 4
test ecx, ecx
mov esi, dword [esp + 0x28]
mov eax, 0x85
mov edx, 0x55daac
mov dword [esi], eax
mov dword [esi + 4], edx
je 0x443ec2
push ecx
jmp 0x443eba
cmp ecx, edi
mov ebx, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, ecx
jbe 0x443d11
call ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x30]
test eax, eax
mov edi, esi
jne 0x443d21
mov eax, dword [ecx + 0x34]
mov esi, dword [eax + 4]
cmp esi, dword [eax + 8]
mov dword [esp + 0x20], eax
jbe 0x443d33
call ebx
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x443d3d
mov eax, dword [ecx + 0x34]
mov ecx, dword [eax + 8]
cmp dword [eax + 4], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
jbe 0x443d53
call ebx
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x20], eax
je 0x443d5b
call ebx
cmp esi, dword [esp + 0x2c]
je 0x443e0d
mov ecx, dword [esp + 0x20]
cmp esi, dword [ecx + 8]
jb 0x443d70
call ebx
test byte [esi + 0x18], 1
jne 0x443da6
mov edx, dword [esp + 0x20]
cmp esi, dword [edx + 8]
jb 0x443d81
call ebx
cmp edi, dword [esp + 0x3c]
jb 0x443d89
call ebx
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x14]
shld edx, eax, 0x10
shl eax, 0x10
mov cl, 0x10
call fcn.00515a40
cmp eax, dword [edi]
jne 0x443dc1
cmp edx, dword [edi + 4]
jne 0x443dc1
mov eax, dword [esp + 0x20]
cmp esi, dword [eax + 8]
jb 0x443db1
call ebx
add esi, 0x20
cmp edi, dword [esp + 0x3c]
jb 0x443dbc
call ebx
add edi, 0x10
jmp 0x443d4f
test byte [0x55daa8], 1
jne 0x443de8
or dword [0x55daa8], 1
push 0x52ce60
mov dword [0x55daac], 0x52fbdc
call fcn.005150d5
add esp, 4
mov edx, dword [esp + 0x28]
mov eax, 0x86
mov dword [edx], eax
mov eax, dword [esp + 0x38]
test eax, eax
mov ecx, 0x55daac
mov dword [edx + 4], ecx
je 0x443ec2
push eax
jmp 0x443eba
mov esi, dword [esp + 0x24]
mov eax, dword [esi + 0x2c]
mov al, byte [eax + 0x1f4]
neg al
lea edx, [esp + 0x34]
sbb eax, eax
xor ecx, ecx
and eax, 2
cmp byte [esp + 0x1f], cl
sete cl
or eax, ecx
push eax
push edx
sub esp, 0x1c
lea eax, [esi + 0x48]
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x443e4f
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0x4c]
mov ecx, eax
call fcn.004417b0
mov bl, al
mov eax, dword [esp + 0x5c]
add esp, 0x24
test eax, eax
je 0x443e70
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
mov al, bl
jmp 0x443ec4
mov eax, 1
test byte [0x55daa8], al
jne 0x443ea2
or dword [0x55daa8], eax
push 0x52ce60
mov dword [0x55daac], 0x52fbdc
call fcn.005150d5
mov esi, dword [esp + 0x3c]
add esp, 4
mov eax, 0x84
cmp esi, ebx
mov edx, dword [esp + 0x28]
mov ecx, 0x55daac
mov dword [edx], eax
mov dword [edx + 4], ecx
je 0x443ec2
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
add esp, 4
xor al, al
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.00515015
mov esp, ebp
pop ebp
ret 8