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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov edi, edx
mov ebp, ecx
mov esi, dword [esp + 0x74]
mov byte [0x425a81], 1
call fcn.0041d042
mov ecx, dword [0x425a88]
mov edx, dword [0x425a8c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
sub esp, 0x10
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0xc], 0
call fcn.0041d0b4
add esp, 0x10
mov ebx, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, esi
jae 0x40c2da
mov ecx, ebx
push esi
push edi
call fcn.0041cfca
jmp 0x40c2ec
test esi, esi
je 0x40c2ec
push esi
push edi
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add dword [ebx + 0x10], esi
lea ebx, [esp + 0x7c]
lea ecx, [esp + 0x14]
push dword [esp + 0x78]
call fcn.0041d1fe
test byte [esp + 0x1c], 1
jne 0x40c326
call fcn.0041d042
mov edi, eax
mov eax, dword [eax + 0x10]
cmp dword [edi + 0xc], eax
je 0x40c3ae
mov byte [eax], 0x28
mov eax, dword [edi + 0x10]
inc eax
mov dword [edi + 0x10], eax
jmp 0x40c3c1
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], 0
mov dword [esp], eax
lea eax, [esp + 0xf]
mov ecx, esp
lea edx, [esp + 0x28]
push eax
push ecx
push edx
call fcn.00410450
add esp, 0xc
mov ecx, dword [esp]
test ecx, ecx
je 0x40c356
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.0041d042
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40c40f
mov byte [ecx], 0x28
mov ecx, dword [eax + 0x10]
inc ecx
mov dword [eax + 0x10], ecx
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, 2
ja 0x40c42e
mov ecx, eax
push 3
push 0x41f9c7
call fcn.0041cfca
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40c449
mov byte [ecx], 0x29
inc dword [eax + 0x10]
cmp dword [ebx + 4], 0
jne 0x40c465
jmp 0x40c4f8
mov ecx, edi
push 1
push 0x41f9c5
call fcn.0041cfca
mov edi, eax
mov eax, dword [eax + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ecx, dword [edi + 0xc]
sub ecx, eax
cmp ecx, esi
jae 0x40c3e2
mov ecx, edi
push esi
push edx
call fcn.0041cfca
mov edi, eax
mov eax, dword [eax + 0x10]
jmp 0x40c3f9
test esi, esi
je 0x40c3f9
push esi
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [edi + 0x10]
mov dword [edi + 0x10], esi
mov eax, esi
cmp dword [edi + 0xc], eax
je 0x40c44d
mov byte [eax], 0x29
inc dword [edi + 0x10]
cmp dword [ebx + 4], 0
jne 0x40c465
jmp 0x40c4f8
mov ecx, eax
push 1
push 0x41f9c5
call fcn.0041cfca
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
sub edx, ecx
cmp edx, 2
jbe 0x40c37f
mov byte [ecx + 2], 0x3f
mov word [ecx], 0x3f3f
mov ecx, dword [eax + 0x10]
add ecx, 3
mov dword [eax + 0x10], ecx
cmp dword [eax + 0xc], ecx
jne 0x40c399
mov ecx, eax
jmp 0x40c44f
mov ecx, edi
push 1
push 0x41f967
call fcn.0041cfca
cmp dword [ebx + 4], 0
je 0x40c4f8
call fcn.0041d042
mov edi, eax
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
sub ecx, eax
cmp ecx, 0x12
ja 0x40c48e
mov ecx, edi
push 0x13
push str.__for_architecture
call fcn.0041cfca
mov edi, eax
mov eax, dword [eax + 0x10]
jmp 0x40c4a8
movups xmm0, xmmword [str.__for_architecture]
movups xmmword [eax], xmm0
mov dword [eax + 0xf], 0x20657275
mov eax, dword [edi + 0x10]
add eax, 0x13
mov dword [edi + 0x10], eax
mov edx, dword [ebx]
mov esi, dword [ebx + 4]
mov ecx, dword [edi + 0xc]
sub ecx, eax
cmp ecx, esi
jae 0x40c4c6
mov ecx, edi
push esi
push edx
call fcn.0041cfca
mov edi, eax
mov eax, dword [eax + 0x10]
jmp 0x40c4dd
test esi, esi
je 0x40c4dd
push esi
push edx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [edi + 0x10]
mov dword [edi + 0x10], esi
mov eax, esi
cmp dword [edi + 0xc], eax
je 0x40c4ea
mov byte [eax], 0x29
inc dword [edi + 0x10]
jmp 0x40c4f8
mov ecx, edi
push 1
push 0x41f967
call fcn.0041cfca
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x2c], xmm0
mov byte [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 1
mov eax, dword [sym.imp.libLLVM_17.dll_vtable_for_llvm::raw_string_ostream]
add eax, 8
mov dword [esp + 0x28], eax
mov eax, esp
mov dword [esp + 0x48], eax
lea edi, [esp + 0x28]
mov ecx, edi
push 0
push 0
push 0
call fcn.0041cfc4
mov eax, dword [ebp]
mov dword [esp + 0x10], eax
mov dword [ebp], 0
mov word [esp + 0x5c], 0x101
sub esp, 0x1c
mov eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
movups xmm0, xmmword [esp + 0x68]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], edi
lea eax, [esp + 0x2c]
mov dword [esp], eax
call fcn.0041d018
add esp, 0x1c
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x40c599
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x30]
je 0x40c5ac
lea ecx, [esp + 0x28]
call fcn.0041cfbe
call fcn.0041d042
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x10]
sub edx, ecx
cmp edx, 1
ja 0x40c5dd
mov ecx, eax
push 2
push 0x41f8c0
call fcn.0041cfca
movzx edx, byte [esp]
test dl, 1
jne 0x40c5ef
shr edx, 1
lea esi, [esp + 1]
jmp 0x40c5f7
mov word [ecx], 0x203a
add dword [eax + 0x10], 2
movzx edx, byte [esp]
test dl, 1
je 0x40c5d5
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
mov ecx, eax
push edx
push esi
call fcn.0041cfca
mov ecx, dword [eax + 0x10]
cmp dword [eax + 0xc], ecx
je 0x40c64d
mov byte [ecx], 0xa
inc dword [eax + 0x10]
lea ecx, [esp + 0x28]
call fcn.0041cfd6
test byte [esp], 1
je 0x40c629
push dword [esp + 8]
call sub.libc.dll_operator_delete_void_
add esp, 4
test byte [esp + 0x1c], 1
je 0x40c645
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], 0
test ecx, ecx
je 0x40c645
mov eax, dword [ecx]
call dword [eax + 4]
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
push 1
push 0x41f8c3
call fcn.0041cfca
lea ecx, [esp + 0x28]
call fcn.0041cfd6
test byte [esp], 1
jne 0x40c61d
jmp 0x40c629