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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov dword [esp + 0x84], ecx
mov ecx, dword [edx]
mov eax, dword [ebp + 8]
test ecx, ecx
je 0x5300b4
mov esi, dword [eax + 4]
mov dword [esp + 0x54], edx
mov edx, dword [edx + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 8], eax
lea eax, [ecx + 0x10c]
mov dword [esp + 4], ecx
movzx ecx, word [ecx + 0x192]
mov ebx, 0xffffffff
mov dword [esp + 0x10], ecx
lea ecx, [ecx*4]
lea esi, [ecx + ecx*2]
test esi, esi
je 0x530070
lea ecx, [eax + 0xc]
mov edx, dword [esp + 8]
mov edi, ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 8]
mov ebx, edx
sub ebx, ecx
cmovb ecx, edx
push ecx
push dword [eax + 4]
push dword [esp + 0x1c]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
cmovne ebx, eax
xor ecx, ecx
mov eax, 0xff
test ebx, ebx
mov ebx, edi
setne cl
cmovs ecx, eax
mov eax, dword [esp + 0xc]
inc ebx
add esi, 0xfffffff4
cmp cl, 1
je 0x530010
movzx eax, cl
test eax, eax
je 0x530095
jmp 0x530074
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 4]
sub eax, 1
jb 0x5301bb
mov ecx, dword [ecx + ebx*4 + 0x198]
mov dword [esp + 0x18], eax
jmp 0x52ffec
mov eax, dword [ebp + 8]
cmp dword [eax], 0
je 0x5300ae
push dword [esp + 0x14]
push 0
push dword [0x5970d8]
call sub.KERNEL32.dll_HeapFree
mov esi, dword [esp + 4]
jmp 0x5300c3
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov ebx, edx
cmp edi, 0x80000000
jne 0x530113
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0x84]
mov edx, dword [ebp + 0xc]
movsd xmm0, qword [esi + eax*8 + 0x10]
movsd qword [ecx + 0x10], xmm0
movsd xmm0, qword [esi + eax*8]
movsd xmm1, qword [esi + eax*8 + 8]
movsd qword [ecx + 8], xmm1
movsd qword [ecx], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + eax*8], xmm0
movsd qword [esi + eax*8 + 8], xmm1
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + eax*8 + 0x10], xmm0
jmp 0x5301b3
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x53013c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x530e96
mov dword [0x5970d8], eax
push 0x198
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x530e96
mov ecx, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 1
mov dword [eax + 0x10c], edi
mov dword [eax + 0x110], esi
mov dword [eax + 0x114], ecx
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
movsd xmm0, qword [edx + 0x10]
movsd qword [eax + 0x10], xmm0
mov dword [ebx], eax
mov dword [ebx + 4], 0
mov dword [ebx + 8], 1
mov eax, dword [esp + 0x84]
mov byte [eax], 6
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], ebx
mov edi, dword [eax]
mov esi, dword [eax + 4]
cmp edi, 0x80000000
jne 0x5301e4
mov ebx, dword [esp + 0x54]
jmp 0x5300c3
mov edx, dword [eax + 8]
movzx eax, word [ecx + 0x192]
mov dword [esp + 0x14], edi
cmp eax, 0xb
jae 0x53024a
mov edi, eax
lea eax, [ebx + 1]
mov dword [esp + 0xc], edi
cmp eax, edi
lea edi, [ebx + ebx*2]
mov dword [esp + 8], edi
lea edi, [ecx + edi*4 + 0x10c]
jbe 0x530279
mov eax, dword [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [edi + 4], esi
movsd xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
mov edx, dword [esp + 8]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
jmp 0x530315
mov al, 1
mov ecx, 4
cmp ebx, 5
jb 0x530353
mov ecx, ebx
je 0x530353
cmp ebx, 6
jne 0x530349
xor eax, eax
mov ecx, 5
xor ebx, ebx
jmp 0x530353
mov ecx, dword [esp + 4]
lea eax, [eax + eax*2]
mov dword [esp + 0x18], eax
add ecx, 0x10c
lea eax, [ecx + eax*4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xc]
sub eax, ebx
lea ecx, [eax*4]
mov dword [esp + 0x10], eax
lea ecx, [ecx + ecx*2]
push ecx
push edi
push dword [esp + 0x24]
mov ebx, edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x18]
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x10]
mov dword [edi + 4], esi
mov dword [edi + 8], ebx
mov esi, dword [esp + 8]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 4]
shl edx, 3
lea edx, [edx + edx*2]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
lea eax, [eax + esi*8]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov edx, esi
movsd xmm0, qword [esp + 0x40]
mov eax, dword [esp + 0xc]
movsd qword [ecx + edx*8 + 0x10], xmm0
inc eax
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [ecx + edx*8 + 8], xmm1
movsd qword [ecx + edx*8], xmm0
mov word [ecx + 0x192], ax
jmp 0x530d18
add ebx, 0xfffffff9
mov ecx, 6
xor eax, eax
mov dword [esp + 8], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x10], ebx
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x530385
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x530e96
mov dword [0x5970d8], eax
push 0x198
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x530e96
mov edi, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 0
mov dword [esp + 0xc], eax
movzx edx, word [edi + 0x192]
mov ebx, ecx
lea ecx, [ecx + ecx*2]
not ebx
add ebx, edx
mov dword [esp + 0x20], edx
mov word [eax + 0x192], bx
cmp ebx, 0xc
mov edx, dword [edi + ecx*4 + 0x110]
movsd xmm0, qword [edi + ecx*8 + 0x10]
mov eax, dword [edi + ecx*4 + 0x10c]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + ecx*4 + 0x114]
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [edi + ecx*8]
movsd xmm1, qword [edi + ecx*8 + 8]
mov dword [esp + 0x28], edx
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
jae 0x530efc
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], ebx
inc ecx
sub eax, ecx
cmp eax, ebx
jne 0x530ea5
mov edi, dword [esp + 4]
mov ebx, dword [esp + 0x20]
mov edx, dword [esp + 0xc]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x2c], ecx
lea eax, [edi + 0x10c]
add edx, 0x10c
lea eax, [eax + ecx*4]
lea ecx, [ebx*4]
lea ecx, [ecx + ecx*2]
push ecx
push eax
push edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x2c]
shl ebx, 3
lea ecx, [ebx + ebx*2]
lea eax, [edi + eax*8]
push ecx
push eax
mov ebx, dword [esp + 0x14]
push ebx
call sub.msvcrt.dll_memcpy
mov ecx, edi
add esp, 0xc
mov eax, dword [esp + 8]
cmp byte [esp + 0x24], 0
mov word [edi + 0x192], ax
mov edi, ebx
movsd xmm0, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
cmovne edi, ecx
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x3c], xmm1
movsd qword [esp + 0x44], xmm0
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm2
movsd qword [esp + 0x60], xmm1
mov eax, dword [esp + 0x10]
movzx edx, word [edi + 0x192]
mov ecx, edx
sub ecx, eax
lea eax, [eax + eax*2]
mov dword [esp + 8], ecx
mov ecx, eax
lea ebx, [edi + eax*4 + 0x10c]
jbe 0x5305a8
lea eax, [edi + 0x10c]
mov dword [esp + 0x24], ecx
lea eax, [eax + ecx*4 + 0xc]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 8]
lea ecx, [eax*4]
lea ecx, [ecx + ecx*2]
push ecx
push ebx
push dword [esp + 0x18]
mov dword [esp + 0x1c], edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
mov dword [ebx], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + 4], esi
mov esi, dword [esp + 0x24]
shl edx, 3
lea edx, [edx + edx*2]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
lea ecx, [edi + esi*8 + 0x18]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [edi + esi*8]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov eax, esi
jmp 0x5305e1
mov eax, dword [esp + 0x14]
mov dword [ebx], eax
mov eax, dword [esp + 0x50]
mov dword [ebx + 4], esi
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, ecx
mov ecx, dword [esp + 4]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
movsd xmm0, qword [esp + 0x40]
inc edx
mov esi, dword [esp + 0xc]
movsd qword [edi + eax*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [edi + eax*8 + 8], xmm1
movsd qword [edi + eax*8], xmm0
mov word [edi + 0x192], dx
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
cmp edx, 0x80000000
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x54]
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd qword [esp + 0xa8], xmm2
je 0x530d1c
mov eax, dword [esp + 0xc0]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb0]
xor ebx, ebx
mov dword [esp + 0xa0], eax
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0x90], xmm1
movsd qword [esp + 0x88], xmm2
mov eax, dword [ecx + 0x108]
test eax, eax
je 0x530bc9
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], esi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
xor ecx, ecx
cmp ebx, ecx
jne 0x530ec8
mov ecx, dword [esp + 4]
mov edx, eax
mov dword [esp + 0x14], edx
movzx edx, word [edx + 0x192]
movzx esi, word [ecx + 0x190]
cmp edx, 0xb
mov dword [esp + 0x58], edx
jb 0x530d24
mov edi, ebx
mov bl, 1
cmp si, 5
mov dword [esp + 4], 4
jb 0x530734
cmp esi, 5
je 0x530721
cmp esi, 6
jne 0x530727
xor ebx, ebx
xor esi, esi
mov dword [esp + 4], 5
jmp 0x530734
mov dword [esp + 4], esi
jmp 0x530734
add esi, 0xfffffff9
mov dword [esp + 4], 6
xor ebx, ebx
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x530756
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x530eb9
mov dword [0x5970d8], eax
push 0x1c8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x530eb9
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 4]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 0
mov ecx, eax
mov dword [esp + 8], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
movzx eax, word [ebx + 0x192]
mov edi, edx
mov dword [esp + 4], edx
not edi
add edi, eax
mov word [ecx + 0x192], di
lea ecx, [edx + edx*2]
cmp edi, 0xc
mov edx, dword [ebx + ecx*4 + 0x10c]
movsd xmm0, qword [ebx + ecx*8 + 0x10]
mov dword [esp + 0x18], edx
mov edx, dword [ebx + ecx*4 + 0x110]
mov dword [esp + 0x1c], edx
mov edx, dword [ebx + ecx*4 + 0x114]
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [ebx + ecx*8]
movsd xmm1, qword [ebx + ecx*8 + 8]
mov dword [esp + 0x28], edx
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm0
jae 0x530edc
mov ecx, dword [esp + 4]
lea edx, [ecx + 1]
sub eax, edx
cmp eax, edi
jne 0x530ea5
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 8]
mov dword [esp + 0x7c], edx
lea edx, [edx + edx*2]
mov dword [esp + 0x80], edx
lea eax, [ebx + 0x10c]
add ecx, 0x10c
lea eax, [eax + edx*4]
lea edx, [edi*4]
lea edx, [edx + edx*2]
push edx
push eax
push ecx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x80]
shl edi, 3
lea ecx, [edi + edi*2]
lea eax, [ebx + eax*8]
push ecx
push eax
mov edi, dword [esp + 0x14]
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp + 4]
lea eax, [esp + 0x34]
mov word [ebx + 0x192], dx
movsd xmm1, qword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movsd qword [eax + 8], xmm1
movsd xmm1, qword [esp + 0x70]
movsd qword [eax], xmm0
movsd qword [eax + 0x10], xmm1
movzx edi, word [edi + 0x192]
lea ecx, [edi + 1]
cmp edi, 0xc
jae 0x530eed
mov eax, edx
mov edx, dword [esp + 0x58]
sub edx, eax
cmp edx, ecx
jne 0x530ea5
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x7c]
inc dword [esp + 0x10]
shl edx, 2
add eax, 0x198
lea ecx, [ecx + ebx*4 + 0x198]
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
nop dword [eax + eax]
mov ebx, dword [esp + 0xc]
mov ecx, eax
cmp eax, edi
adc eax, 0
cmp ecx, edi
mov edx, dword [ebx + ecx*4 + 0x198]
mov dword [edx + 0x108], ebx
mov word [edx + 0x190], cx
jae 0x530917
cmp eax, edi
jbe 0x5308f0
cmp byte [esp + 0x5c], 0
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
lea edx, [esi + 1]
lea ebx, [esi + esi*2]
mov dword [esp + 4], edx
cmovne ecx, dword [esp + 0x14]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
movzx edi, word [ecx + 0x192]
lea eax, [ecx + ebx*4 + 0x10c]
mov dword [esp + 0x58], eax
cmp edx, edi
jbe 0x5309b5
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x58]
mov dword [edx], eax
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 8], eax
lea edx, [esp + 0x8c]
movsd xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
jmp 0x530a62
lea edx, [edx + edx*2]
lea eax, [ecx + 0x10c]
mov dword [esp + 8], ecx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x80], edx
lea eax, [eax + edx*4]
mov edx, edi
sub edx, esi
lea ecx, [edx*4]
mov dword [esp + 0x7c], edx
lea ecx, [ecx + ecx*2]
push ecx
mov ebx, dword [esp + 0x5c]
push ebx
push eax
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x80]
mov dword [ebx], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 4], eax
lea eax, [esp + 0x8c]
movsd xmm0, qword [eax + 0x10]
movsd xmm2, qword [eax]
movsd xmm1, qword [eax + 8]
mov eax, dword [esp + 0x5c]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 8]
movsd qword [esp + 0x40], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x7c]
shl edx, 3
lea edx, [edx + edx*2]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x68]
add esp, 0xc
movsd xmm0, qword [esp + 0x40]
lea edx, [edi + 2]
lea eax, [esi + 2]
cmp eax, edx
movsd qword [ecx + ebx*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [ecx + ebx*8 + 8], xmm1
movsd qword [ecx + ebx*8], xmm0
jae 0x530abd
mov dword [esp + 8], edx
mov edx, dword [esp + 4]
mov ebx, ecx
add ecx, 0x198
lea eax, [ecx + eax*4]
lea edx, [ecx + edx*4]
mov ecx, edi
sub ecx, esi
shl ecx, 2
push ecx
push edx
push eax
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x14]
mov ecx, ebx
add esp, 0xc
inc edi
mov eax, dword [esp + 0x50]
cmp dword [esp + 4], edx
mov dword [ecx + esi*4 + 0x19c], eax
mov word [ecx + 0x192], di
jae 0x530af9
nop word cs:[eax + eax]
mov eax, dword [ecx + esi*4 + 0x19c]
inc esi
cmp edi, esi
mov dword [eax + 0x108], ecx
mov word [eax + 0x190], si
jne 0x530ae0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x68]
cmp edx, 0x80000000
mov dword [esp + 0xc0], eax
movsd qword [esp + 0xb8], xmm0
movsd qword [esp + 0xb0], xmm1
movsd qword [esp + 0xa8], xmm2
je 0x530d18
mov eax, dword [esp + 0xc0]
movsd xmm0, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xa8]
movsd xmm1, qword [esp + 0xb0]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
movsd qword [esp + 0x98], xmm0
movsd qword [esp + 0x90], xmm1
movsd qword [esp + 0x88], xmm2
mov dword [esp + 4], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x50], esi
mov eax, dword [ecx + 0x108]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x14]
test eax, eax
jne 0x5306ca
jmp 0x530bd1
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov eax, dword [esp + 0xa0]
movsd xmm0, qword [esp + 0x98]
mov dword [esp + 0xc], esi
movsd xmm1, qword [esp + 0x90]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 0x38], xmm1
mov esi, dword [eax]
movsd qword [esp + 0x30], xmm0
test esi, esi
je 0x530f0d
mov edi, dword [eax + 4]
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x530c4c
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x530eb9
mov dword [0x5970d8], eax
push 0x1c8
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x530eb9
cmp edi, dword [esp + 0x10]
mov edx, dword [esp + 0x54]
lea ecx, [edi + 1]
mov dword [eax + 0x108], 0
mov word [eax + 0x192], 0
mov dword [eax + 0x198], esi
mov dword [esi + 0x108], eax
mov word [esi + 0x190], 0
mov dword [edx], eax
mov dword [edx + 4], ecx
jne 0x530f21
movzx ecx, word [eax + 0x192]
mov edi, dword [esp + 0x18]
cmp ecx, 0xb
jae 0x530f35
lea edx, [ecx + 1]
lea esi, [ecx + ecx*2]
mov word [eax + 0x192], dx
mov dword [eax + esi*4 + 0x10c], edi
mov edi, dword [esp + 0x28]
mov dword [eax + esi*4 + 0x114], edi
mov edi, dword [esp + 0x1c]
mov dword [eax + esi*4 + 0x110], edi
mov edi, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x44]
movsd qword [eax + esi*8 + 0x10], xmm0
movsd xmm0, qword [esp + 0x34]
movsd xmm1, qword [esp + 0x3c]
movsd qword [eax + esi*8 + 8], xmm1
movsd qword [eax + esi*8], xmm0
mov dword [eax + ecx*4 + 0x19c], edi
mov dword [edi + 0x108], eax
mov word [edi + 0x190], dx
mov eax, dword [esp + 0x54]
inc dword [eax + 8]
jmp 0x5301a9
mov ebx, dword [esp + 0x14]
lea eax, [esi + 1]
lea edi, [edx + 1]
cmp si, dx
mov dword [esp + 0xc], eax
lea eax, [esi + esi*2]
mov dword [esp + 8], eax
lea eax, [ebx + eax*4 + 0x10c]
mov dword [esp + 4], eax
jae 0x530e17
mov ecx, dword [esp + 0xc]
lea eax, [ebx + 0x10c]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov eax, edx
sub eax, esi
mov dword [esp + 0x1c], eax
lea eax, [eax*4]
lea ecx, [eax + eax*2]
mov dword [esp + 0x18], eax
push ecx
push dword [esp + 8]
push dword [esp + 0x30]
call sub.msvcrt.dll_memmove
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x1c]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
shl edx, 3
lea edx, [edx + edx*2]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [ebx + eax*8]
lea ecx, [ebx + ecx*8]
push edx
push eax
push ecx
call sub.msvcrt.dll_memmove
add esp, 0xc
lea eax, [esp + 0x8c]
mov ecx, dword [esp + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
movsd qword [ebx + ecx*8], xmm0
movsd qword [ebx + ecx*8 + 8], xmm1
movsd xmm0, qword [eax + 0x10]
mov eax, dword [esp + 0xc]
movsd qword [ebx + ecx*8 + 0x10], xmm0
lea eax, [ebx + eax*4 + 0x198]
lea ecx, [ebx + esi*4 + 0x1a0]
push dword [esp + 0x18]
push eax
push ecx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x64]
add esp, 0xc
jmp 0x530e59
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 4]
mov dword [ecx], eax
mov eax, dword [esp + 0x24]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x20]
mov dword [ecx + 8], eax
lea ecx, [esp + 0x8c]
mov eax, dword [esp + 8]
movsd xmm0, qword [ecx + 0x10]
movsd qword [ebx + eax*8 + 0x10], xmm0
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
movsd qword [ebx + eax*8 + 8], xmm1
movsd qword [ebx + eax*8], xmm0
add edx, 2
mov eax, dword [esp + 0x50]
cmp dword [esp + 0xc], edx
mov dword [ebx + esi*4 + 0x19c], eax
mov word [ebx + 0x192], di
jae 0x530d18
mov eax, dword [ebx + esi*4 + 0x19c]
inc esi
cmp edi, esi
mov dword [eax + 0x108], ebx
mov word [eax + 0x190], si
jne 0x530e78
jmp 0x530d18
mov ecx, 8
mov edx, 0x198
call fcn.00429f40
mov ecx, str.assertion_failed:_src.len____dst.len___dX
mov edx, 0x28
push 0x586504
call fcn.0046b190
mov ecx, 8
mov edx, 0x1c8
call fcn.00429f40
mov ecx, str.assertion_failed:_edge.height__self.node.height___1
mov edx, 0x35
push 0x58656c
call fcn.0046b190
mov ecx, edi
mov edx, 0xb
push 0x586514
call fcn.0046a7e0
mov edx, 0xc
push 0x586524
call fcn.0046a7e0
mov ecx, ebx
mov edx, 0xb
push 0x586514
call fcn.0046a7e0
mov ecx, 0x586c6b
mov edx, 0x2b
push 0x5863f0
call fcn.0046b190
mov ecx, str.assertion_failed:_edge.height__self.height___1_dX
mov edx, 0x30
push 0x5864bc
call fcn.0046b190
mov ecx, str.assertion_failed:_idx___CAPACITY_rustc_07dca489ac2d933c78d3c5158e3f43beefeb02celibrary_alloc_srccollections_btree_node.rs
mov edx, 0x20
push 0x5864cc
call fcn.0046b190
nop dword [eax]