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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xb0
mov ebx, ecx
movzx eax, byte [edx]
test al, 1
je 0x41aec0
mov esi, dword [edx + 8]
mov eax, dword [edx + 4]
jmp 0x41aec5
lea esi, [edx + 1]
shr eax, 1
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x2c], edx
cmp eax, 1
jne 0x41af5c
cmp byte [esi], 0x2d
jne 0x41af5c
mov byte [esp + 0x70], 2
movzx eax, byte [esi]
mov byte [esp + 0x71], al
mov byte [esp + 0x72], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
lea eax, [esp + 0x70]
mov ecx, ebx
push 1
push eax
call fcn.0041e990
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
lea edx, [edx + edx*2]
mov edi, dword [eax + 8]
mov dword [ecx + edx*8 + 8], edi
movsd xmm0, qword [eax]
movsd qword [ecx + edx*8], xmm0
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + edx*8 + 0x10], xmm0
inc dword [ebx + 4]
test byte [esp + 0x70], 1
je 0x41b2b4
push dword [esp + 0x78]
jmp 0x41b2ac
mov dword [esp + 0x3c], ecx
xorps xmm0, xmm0
movups xmmword [esp + 0x7c], xmm0
movaps xmmword [esp + 0x70], xmm0
mov dword [esp + 0x8c], 0xffff
movaps xmmword [esp + 0x90], xmm0
mov word [esp + 0x20], 0x105
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
lea edi, [esp + 0x70]
lea eax, [esp + 0x10]
push 1
push edi
push eax
call fcn.0043bd86
add esp, 0xc
push edi
call fcn.0043bd80
add esp, 4
test al, al
je 0x41b2bc
push edi
call fcn.0043bd62
add esp, 4
test al, al
je 0x41affc
mov ecx, dword [esp + 0xc]
cmp ecx, 0xfffffff0
jae 0x41b2fc
mov dword [esp + 0x48], ebx
cmp ecx, 0xb
jae 0x41b20c
mov eax, ecx
add al, cl
mov byte [esp + 0x10], al
lea ebx, [esp + 0x11]
test ecx, ecx
mov edi, dword [esp + 0x3c]
jne 0x41b236
jmp 0x41b245
push edi
call fcn.0043bd5c
add esp, 4
test al, al
je 0x41b2b4
mov dword [esp + 0x40], 0
call fcn.0043bf2a
mov dword [esp + 0x44], eax
mov word [esp + 0x20], 0x105
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x40]
lea ecx, [esp + 0x54]
push 1
push eax
lea eax, [esp + 0x18]
push eax
call fcn.0041e550
mov eax, dword [esp + 0x54]
test eax, eax
mov edi, dword [esp + 0x3c]
je 0x41b17d
cmp dword [esp + 0x40], 0
jne 0x41b17d
mov dword [esp + 0x48], ebx
nop word cs:[eax + eax]
mov eax, dword [eax + 4]
mov eax, dword [eax - 0xc]
add eax, 4
mov word [esp + 0x20], 0x104
mov dword [esp + 0x10], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x14]
push eax
call fcn.0043bd68
add esp, 8
test eax, eax
jne 0x41b15c
cmp byte [esp + 0x30], 0
je 0x41b15c
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
mov eax, dword [eax - 0xc]
test byte [eax + 4], 1
jne 0x41b0d0
add eax, 4
mov ecx, dword [eax + 8]
mov dword [esp + 0x18], ecx
movsd xmm0, qword [eax]
movsd qword [esp + 0x10], xmm0
jmp 0x41b132
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
cmp ebx, 0xa
ja 0x41b0e9
mov eax, ebx
add al, bl
mov byte [esp + 0x10], al
lea eax, [esp + 0x11]
jmp 0x41b122
mov dword [esp + 0x60], ecx
cmp ebx, 0xfffffff0
jae 0x41b2fc
mov edi, esi
mov esi, ebx
or esi, 0xf
lea eax, [esi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
add esi, 2
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ebx
mov esi, edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x60]
inc ebx
push ebx
push ecx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov ecx, ebx
lea edx, [esp + 0x10]
call fcn.0041aea0
test byte [esp + 0x10], 1
je 0x41b15c
push dword [esp + 0x18]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea ecx, [esp + 0x54]
lea eax, [esp + 0x40]
push eax
call fcn.0041e6a0
mov eax, dword [esp + 0x54]
test eax, eax
je 0x41b17d
cmp dword [esp + 0x40], 0
je 0x41b070
mov ebx, esi
mov esi, dword [esp + 0x58]
test esi, esi
je 0x41b1a3
mov eax, 0xffffffff
lock xadd dword [esi + 4], eax
test eax, eax
jne 0x41b1a3
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov ecx, esi
call fcn.0043bf3c
cmp dword [esp + 0x40], 0
je 0x41b2b4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
lea esi, [esp + 0x54]
mov ecx, esi
push eax
call fcn.0043be88
mov word [esp + 0x20], 0x104
mov dword [esp + 0x10], esi
cmp dword [esp + 0xc], 0xfffffff0
jae 0x41b2f3
cmp dword [esp + 0xc], 0xb
jae 0x41b352
mov ecx, dword [esp + 0xc]
mov eax, ecx
add al, cl
mov byte [esp + 0x30], al
lea esi, [esp + 0x31]
test ecx, ecx
jne 0x41b37a
jmp 0x41b388
mov edi, ecx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
mov ecx, dword [esp + 0x10]
add esp, 4
mov ebx, eax
mov dword [esp + 0x18], eax
add edi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov edi, dword [esp + 0x3c]
push ecx
push esi
push ebx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x48]
mov ecx, esi
push 1
lea eax, [esp + 0x14]
push eax
call fcn.0041e990
mov ecx, dword [esi]
mov edx, dword [esi + 4]
lea edx, [edx + edx*2]
mov edi, dword [eax + 8]
mov dword [ecx + edx*8 + 8], edi
movsd xmm0, qword [eax]
movsd qword [ecx + edx*8], xmm0
mov dword [eax + 8], 0
mov dword [eax], 0
mov dword [eax + 4], 0
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx + edx*8 + 0x10], xmm0
inc dword [esi + 4]
test byte [esp + 0x10], 1
je 0x41b2b4
push dword [esp + 0x18]
call sub.libc.dll_operator_delete_void_
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x2c], esi
call fcn.0043bf30
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], 2
lea eax, [esp + 0x4c]
lea esi, [esp + 0x54]
mov ecx, esi
push eax
call fcn.0043be88
mov word [esp + 0x20], 0x104
mov dword [esp + 0x10], esi
cmp dword [esp + 0xc], 0xfffffff0
jb 0x41b305
lea ecx, [esp + 0x30]
call fcn.00405aa0
lea ecx, [esp + 0x10]
call fcn.00405aa0
cmp dword [esp + 0xc], 0xb
jae 0x41b322
mov ecx, dword [esp + 0xc]
mov eax, ecx
add al, cl
mov byte [esp + 0x30], al
lea esi, [esp + 0x31]
test ecx, ecx
jne 0x41b348
jmp 0x41b388
mov ebx, dword [esp + 0xc]
mov edi, ebx
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [esp + 0x38], eax
add edi, 2
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
push dword [esp + 0xc]
push dword [esp + 0x30]
jmp 0x41b37f
mov edi, dword [esp + 0xc]
or edi, 0xf
lea eax, [edi + 1]
push eax
call sub.libc.dll_operator_new_unsigned_int_
add esp, 4
mov esi, eax
mov dword [esp + 0x38], eax
add edi, 2
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
push dword [esp + 0xc]
push ebx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0xc]
mov byte [esi + eax], 0
mov word [esp + 0x64], 0
sub esp, 0x14
mov eax, dword [esp + 0x34]
mov dword [esp + 0x10], eax
movups xmm0, xmmword [esp + 0x24]
movups xmmword [esp], xmm0
lea ecx, [esp + 0x44]
lea edx, [esp + 0x78]
call fcn.00405ad0
int3