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

Disassembly:
sub esp, 0x94
mov eax, dword [0x680f10]
xor eax, esp
mov dword [esp + 0x90], eax
mov ecx, dword [esi + 0x83c]
push ebp
push edi
push esi
push 1
lea eax, [esp + 0x20]
push 0x80
push eax
call ecx
add esp, 0x10
cmp eax, 1
jne 0x575956
mov cl, byte [esp + 0x19]
movzx edx, byte [esp + 0x1a]
mov al, byte [esp + 0x18]
mov byte [esp + 0x1a], cl
movzx ecx, byte [esp + 0x1b]
mov byte [esp + 0x18], cl
mov cl, byte [esp + 0x1d]
mov byte [esp + 0x19], dl
movzx edx, byte [esp + 0x1e]
mov byte [esp + 0x1e], cl
movzx ecx, byte [esp + 0x1f]
mov byte [esp + 0x1b], al
mov al, byte [esp + 0x1c]
mov byte [esp + 0x1c], cl
mov cl, byte [esp + 0x21]
mov byte [esp + 0x1d], dl
movzx edx, byte [esp + 0x22]
mov byte [esp + 0x22], cl
movzx ecx, byte [esp + 0x23]
mov byte [esp + 0x1f], al
mov al, byte [esp + 0x20]
mov byte [esp + 0x20], cl
mov cl, byte [esp + 0x25]
mov byte [esp + 0x21], dl
movzx edx, byte [esp + 0x26]
mov byte [esp + 0x26], cl
movzx ecx, byte [esp + 0x27]
mov byte [esp + 0x23], al
mov al, byte [esp + 0x24]
mov byte [esp + 0x24], cl
mov cl, byte [esp + 0x29]
mov byte [esp + 0x25], dl
movzx edx, byte [esp + 0x2a]
mov byte [esp + 0x2a], cl
movzx ecx, byte [esp + 0x2b]
mov byte [esp + 0x27], al
mov al, byte [esp + 0x28]
mov byte [esp + 0x28], cl
mov cl, byte [esp + 0x2d]
mov byte [esp + 0x29], dl
movzx edx, byte [esp + 0x2e]
mov byte [esp + 0x2e], cl
movzx ecx, byte [esp + 0x2f]
mov byte [esp + 0x2b], al
mov al, byte [esp + 0x2c]
mov byte [esp + 0x2c], cl
mov cl, byte [esp + 0x3d]
mov byte [esp + 0x2d], dl
movzx edx, byte [esp + 0x3e]
mov byte [esp + 0x3e], cl
movzx ecx, byte [esp + 0x3f]
mov byte [esp + 0x2f], al
mov al, byte [esp + 0x3c]
mov byte [esp + 0x3c], cl
mov cl, byte [esp + 0x45]
mov byte [esp + 0x3d], dl
movzx edx, byte [esp + 0x46]
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x47]
mov byte [esp + 0x3f], al
mov al, byte [esp + 0x44]
cmp dword [esp + 0x3c], 0x61637370
mov byte [esp + 0x44], cl
mov cl, byte [esp + 0x51]
mov byte [esp + 0x45], dl
movzx edx, byte [esp + 0x52]
mov byte [esp + 0x52], cl
movzx ecx, byte [esp + 0x53]
mov byte [esp + 0x47], al
mov al, byte [esp + 0x50]
mov byte [esp + 0x50], cl
mov cl, byte [esp + 0x59]
mov byte [esp + 0x51], dl
movzx edx, byte [esp + 0x5a]
mov byte [esp + 0x5a], cl
movzx ecx, byte [esp + 0x5b]
mov byte [esp + 0x53], al
mov al, byte [esp + 0x58]
mov byte [esp + 0x59], dl
mov byte [esp + 0x58], cl
mov byte [esp + 0x5b], al
jne 0x575956
mov eax, dword [esi + 0x83c]
push esi
push 1
lea edx, [esp + 0x10]
push 4
push edx
call eax
add esp, 0x10
cmp eax, 1
jne 0x575956
mov cl, byte [esp + 9]
mov dl, byte [esp + 0xa]
mov al, byte [esp + 8]
mov byte [esp + 0xa], cl
movzx ecx, byte [esp + 0xb]
mov byte [esp + 9], dl
mov edx, dword [esp + 0x24]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x58]
mov byte [esp + 8], cl
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0xb], al
mov eax, dword [esp + 0x28]
mov dword [esi + 0x10], edx
mov edx, dword [esp + 0x5c]
mov dword [esi + 8], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x50]
push edx
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
lea edi, [esi + 0x20]
call fcn.005753d0
mov eax, dword [esp + 0x64]
push eax
fstp qword [edi]
call fcn.005753d0
mov ecx, dword [esp + 0x6c]
fstp qword [esi + 0x28]
push ecx
call fcn.005753d0
fstp qword [esi + 0x30]
mov edx, dword [esp + 0x2c]
add esp, 0xc
lea eax, [esi + 0x818]
lea ecx, [esp + 0x30]
mov dword [esi + 0x38], edx
call fcn.005754a0
call fcn.0057d4e0
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov edx, dword [eax + 0xc]
mov dword [edi + 0xc], edx
mov ecx, dword [eax + 0x10]
mov dword [edi + 0x10], ecx
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esi + 0xb8], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x74]
mov dword [esi + 0xbc], ecx
mov dword [esi + 0xc0], edx
mov ecx, edi
mov dword [esi + 0xc4], eax
call fcn.00575640
mov eax, dword [esp + 8]
cmp eax, 0x64
jle 0x5759a4
push eax
push str.Too_many_tags___d_
push 0x3000
call fcn.0057d3b0
add esp, 0xc
mov eax, dword [esi + 0x844]
push esi
call eax
add esp, 4
cmp dword [esp + 0xa0], 0
je 0x575a94
push str.Corrupted_memory_profile
push 0x3000
call fcn.0057d3b0
add esp, 8
push esi
call fcn.0044bde6
add esp, 4
pop edi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.0044abb9
add esp, 0x94
ret
xor ebp, ebp
test eax, eax
mov dword [esi + 0xc8], eax
jle 0x575a7b
lea edi, [esi + 0x3ec]
lea ebx, [ebx]
mov edx, dword [esi + 0x83c]
push esi
push 1
lea ecx, [esp + 0x14]
push 0xc
push ecx
call edx
add esp, 0x10
cmp eax, 1
jne 0x575956
mov cl, byte [esp + 0x11]
movzx edx, byte [esp + 0x12]
mov al, byte [esp + 0x10]
mov byte [esp + 0x12], cl
movzx ecx, byte [esp + 0x13]
mov byte [esp + 0x10], cl
mov cl, byte [esp + 0x15]
mov byte [esp + 0x11], dl
movzx edx, byte [esp + 0x16]
mov byte [esp + 0x16], cl
movzx ecx, byte [esp + 0x17]
mov byte [esp + 0x13], al
mov al, byte [esp + 0x14]
mov byte [esp + 0x14], cl
mov cl, byte [esp + 0xd]
mov byte [esp + 0x15], dl
movzx edx, byte [esp + 0xe]
mov byte [esp + 0xe], cl
movzx ecx, byte [esp + 0xf]
mov byte [esp + 0x17], al
mov al, byte [esp + 0xc]
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x10]
mov byte [esp + 0xf], al
mov eax, dword [esp + 0x14]
mov byte [esp + 0xd], dl
lea edx, [eax + ecx]
cmp edx, dword [esp + 0x18]
ja 0x575956
mov edx, dword [esp + 0xc]
mov dword [edi - 0x320], edx
mov dword [edi], ecx
mov dword [edi - 0x190], eax
add ebp, 1
add edi, 4
cmp ebp, dword [esp + 8]
jl 0x5759c0
pop edi
mov eax, esi
pop ebp
mov ecx, dword [esp + 0x90]
xor ecx, esp
call fcn.0044abb9
add esp, 0x94
ret
lea ecx, [esi + 0x70c]
push ecx
push 0x643d78
push 0x3000
call fcn.0057d3b0
add esp, 0xc
push esi
call fcn.0044bde6
mov ecx, dword [esp + 0x9c]
add esp, 4
pop edi
pop ebp
xor ecx, esp
xor eax, eax
call fcn.0044abb9
add esp, 0x94
ret