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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x4a0
call 0x544184
pop eax
mov edi, edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xb4], eax
mov ecx, edx
mov edx, 0x5a9260
push 0xa
mov dword [esp + 0x124], edi
call fcn.005487e0
add esp, 4
mov dword [esp + 0x30], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov edx, eax
mov dword [esp + 0x50], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], edx
cmove ecx, eax
mov dword [esp + 0x30], ecx
mov edx, 0x5a926a
mov ecx, edi
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp], edx
mov ecx, dword [esp + 0x50]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
cmove ecx, eax
mov dword [esp], ecx
mov edx, 0x5a92b1
mov ecx, edi
push 0xd
call fcn.005487e0
add esp, 4
mov dword [esp + 0x18], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov edx, eax
mov dword [esp + 0x10], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], edx
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov edx, 0x5a92be
mov ecx, edi
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 4], edx
mov ecx, dword [esp + 0x10]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 4]
cmove ecx, eax
mov dword [esp + 4], ecx
mov edx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_frame.eh_frame.eh_frame_hdr.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_macinfo.debug_macro.debug_pubnames.debug_pubtypes.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types.debug_abbrev.dwo.debug_info.dwo.debug_line.dwo.debug_loc.dwo.debug_loclists.dwo.debug_macro.dwo.debug_rnglists.dwo.debug_str.dwo.debug_str_offsets.dwo.debug_types.dwo
mov ecx, edi
push 0xd
call fcn.005487e0
add esp, 4
mov dword [esp + 0x20], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov edx, eax
mov dword [esp + 0x1c], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], edx
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov edx, 0x5a91f1
mov ecx, edi
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x1c]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xc]
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov edx, 0x5a91fc
mov ecx, edi
push 0xe
call fcn.005487e0
add esp, 4
mov dword [esp + 8], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov edx, eax
mov dword [esp + 0x48], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x90], edx
cmove ecx, eax
mov dword [esp + 8], ecx
mov edx, 0x5a923b
mov ecx, edi
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0x24], edx
mov ecx, dword [esp + 0x48]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x24]
cmove ecx, eax
mov dword [esp + 0x24], ecx
mov edx, 0x5a9246
mov ecx, edi
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0x28], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov edx, eax
mov dword [esp + 0x14], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x68], edx
cmove ecx, eax
mov dword [esp + 0x28], ecx
mov edx, 0x5a9251
mov ecx, edi
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0x14]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x4c]
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov edx, 0x5a92cd
mov ecx, edi
push 0xa
call fcn.005487e0
add esp, 4
mov dword [esp + 0x2c], edx
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmovne ecx, eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x2c]
cmove ecx, eax
mov dword [esp + 0x2c], ecx
mov edx, 0x5a92d7
mov ecx, edi
push 0x12
call fcn.005487e0
add esp, 4
mov esi, eax
mov ebx, edx
mov edx, 0x5a92f8
mov ecx, edi
push 0xc
call fcn.005487e0
add esp, 4
test esi, esi
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ebx, esi
cmove esi, ecx
test eax, eax
cmove edx, eax
cmove eax, ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x428], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x42c], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x430], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x434], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x438], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x43c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x440], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x444], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x448], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44c], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x450], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x454], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x458], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x45c], ecx
mov dword [esp + 0x460], esi
mov dword [esp + 0x464], ebx
mov dword [esp + 0x468], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x46c], edx
mov dword [esp + 0x470], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x474], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x478], eax
mov eax, dword [esp]
mov dword [esp + 0x47c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x480], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x484], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x488], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x48c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x490], 0
mov dword [esp + 0x494], 0
mov byte [esp + 0x498], 0
mov ecx, dword [eax]
test ecx, ecx
mov dword [esp + 0xb0], ecx
je 0x544a37
movsd xmm2, qword [eax + 0x28]
movsd xmm1, qword [eax + 0x20]
movq xmm0, qword [eax + 0x30]
movsd qword [esp + 0x348], xmm2
movsd qword [esp + 0x340], xmm1
movsd xmm2, qword [eax + 0x18]
movsd xmm1, qword [eax + 0x10]
movq qword [esp + 0x350], xmm0
movsd qword [esp + 0x338], xmm2
movsd qword [esp + 0x330], xmm1
movq xmm2, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0x328], xmm1
movq qword [esp + 0x320], xmm2
mov edx, 0x5a9260
lea ecx, [esp + 0x320]
push 0xa
call fcn.005487e0
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edx
mov edx, 0x5a926a
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x50], edx
mov edx, 0x5a92b1
lea ecx, [esp + 0x320]
push 0xd
call fcn.005487e0
add esp, 4
mov dword [esp + 0x90], eax
mov dword [esp], edx
mov edx, 0x5a92be
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edx
mov edx, str..debug_abbrev.debug_addr.debug_aranges.debug_cu_index.debug_frame.eh_frame.eh_frame_hdr.debug_info.debug_line.debug_line_str.debug_loc.debug_loclists.debug_macinfo.debug_macro.debug_pubnames.debug_pubtypes.debug_ranges.debug_rnglists.debug_str.debug_str_offsets.debug_tu_index.debug_types.debug_abbrev.dwo.debug_info.dwo.debug_line.dwo.debug_loc.dwo.debug_loclists.dwo.debug_macro.dwo.debug_rnglists.dwo.debug_str.dwo.debug_str_offsets.dwo.debug_types.dwo
lea ecx, [esp + 0x320]
push 0xd
call fcn.005487e0
add esp, 4
mov dword [esp + 0x68], eax
mov dword [esp + 4], edx
mov edx, 0x5a91f1
lea ecx, [esp + 0x320]
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0x7c], eax
mov dword [esp + 0x20], edx
mov edx, 0x5a91fc
lea ecx, [esp + 0x320]
push 0xe
call fcn.005487e0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edx
mov edx, 0x5a923b
lea ecx, [esp + 0x320]
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 8], edx
mov edx, 0x5a9246
lea ecx, [esp + 0x320]
push 0xb
call fcn.005487e0
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
mov edx, 0x5a9251
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], edx
mov edx, 0x5a92cd
lea ecx, [esp + 0x320]
push 0xa
call fcn.005487e0
add esp, 4
mov dword [esp + 0x2c], edx
mov ebx, eax
mov edx, 0x5a92d7
lea ecx, [esp + 0x320]
push 0x12
call fcn.005487e0
add esp, 4
mov edi, eax
mov esi, edx
mov edx, 0x5a92f8
lea ecx, [esp + 0x320]
push 0xc
call fcn.005487e0
add esp, 4
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edx, eax
cmove eax, ecx
test edi, edi
cmove esi, edi
cmove edi, ecx
mov ecx, dword [esp + 0x2c]
test ebx, ebx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x78], esi
mov esi, dword [esp + 0x14]
mov dword [esp + 0x130], edi
mov edi, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ecx, ebx
cmove ebx, edi
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x88], ebx
mov ebx, dword [esp + 0x18]
test ecx, ecx
cmove esi, ecx
cmove ecx, edi
test eax, eax
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 8]
cmove esi, eax
cmove eax, edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 4]
test eax, eax
cmove ecx, eax
cmove eax, edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc]
test ecx, ecx
cmove eax, ecx
cmove ecx, edi
test edx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp]
cmove ecx, edx
cmove edx, edi
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x68]
test ecx, ecx
cmove esi, ecx
cmove ecx, edi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x190], ecx
test esi, esi
cmove ebx, esi
cmove esi, edi
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x90]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x84]
test esi, esi
cmove eax, esi
cmove esi, edi
test ebx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x50]
cmove eax, ebx
cmove ebx, edi
mov edi, dword [esp + 0x44]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x30]
test edi, edi
cmove eax, edi
mov dword [esp + 0x30], eax
mov eax, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove edi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x198], edx
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1a4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x1c8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1cc], eax
mov eax, dword [esp + 0x170]
mov dword [esp + 0x1d0], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1d8], edi
mov dword [esp + 0x1dc], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1e0], ebx
mov dword [esp + 0x1e4], eax
mov eax, dword [esp]
mov dword [esp + 0x1e8], esi
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1f4], eax
mov eax, dword [0x6074b4]
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0
mov byte [esp + 0x200], 0
mov dword [esp + 0x188], 1
mov dword [esp + 0x18c], 1
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x5449c5
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5480b7
mov dword [0x6320d0], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x5480b7
lea esi, [esp + 0x188]
mov ecx, 0x1f
mov edi, eax
mov ebx, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x490]
test eax, eax
je 0x544a05
lock dec dword [eax]
jne 0x544a05
lea ecx, [esp + 0x490]
call fcn.005158b0
cmp dword [esp + 0x34c], 0
mov dword [esp + 0x490], ebx
je 0x544a2a
push dword [esp + 0x348]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x90], 0
jmp 0x544a40
mov al, 1
mov dword [esp + 0x90], eax
mov eax, dword [0x6074b4]
lea edi, [esp + 0x190]
lea esi, [esp + 0x428]
mov ecx, 0x1d
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x188], 1
mov dword [esp + 0x18c], 1
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x544a8e
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x548086
mov dword [0x6320d0], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x548086
lea esi, [esp + 0x188]
mov ecx, 0x1f
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x98], 4
mov dword [esp + 0x9c], 0
mov dword [esp + 0x94], eax
mov dword [esp + 0xa0], 0
add ecx, 8
mov dword [esp + 0x8c], ecx
mov esi, dword [eax + 0x1c]
mov ecx, dword [eax + 0x18]
test esi, esi
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], 0
je 0x5452a8
lea eax, [esp + 0x188]
mov ecx, 4
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
jmp 0x544b56
mov ecx, dword [esp + 0x30]
mov dword [ecx + edx*8], ebx
mov dword [ecx + edx*8 + 4], esi
inc edx
mov esi, dword [esp + 0x128]
mov dword [esp + 4], edx
mov dword [esp + 0xa0], edx
test esi, esi
je 0x544be2
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x188]
lea edx, [esp + 0x124]
push edi
call fcn.0051f0c0
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x545395
sub esi, dword [esp + 0x128]
movzx eax, byte [esp + 0x18d]
mov ecx, dword [esp + 0x198]
mov ebx, dword [esp + 0x1a0]
mov edi, esi
add edi, dword [esp + 0x12c]
cmp al, 3
mov dword [esp + 0x12c], edi
je 0x544be2
mov edx, dword [esp + 4]
mov esi, ecx
cmp edx, dword [esp + 0x9c]
jne 0x544b30
lea ecx, [esp + 0x98]
call fcn.00515c10
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xa0]
jmp 0x544b34
mov eax, dword [esp + 0x98]
cmp dword [esp + 4], 0x15
mov dword [esp + 0x4c], eax
jae 0x544c16
cmp dword [esp + 4], 1
jbe 0x5452a8
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
push 1
call fcn.00511780
add esp, 4
jmp 0x5452a8
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x544c39
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x5480f8
mov dword [0x6320d0], eax
mov ecx, dword [esp + 4]
shr ecx, 1
mov dword [esp + 0x130], ecx
lea ecx, [ecx*8]
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp], eax
je 0x5480f8
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x544c84
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x54810e
mov dword [0x6320d0], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x54810e
mov ebx, eax
mov eax, dword [esp + 0x4c]
xor edx, edx
xor edi, edi
mov dword [esp + 0x84], 0x10
lea ecx, [eax - 4]
lea esi, [eax - 8]
add eax, 0xfffffff0
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x78], eax
jmp 0x544ce3
mov edi, 1
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 4]
jae 0x54528a
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], edx
sub eax, edx
lea ecx, [ecx + edx*8]
cmp eax, 2
jae 0x544d80
mov dword [esp + 0x50], eax
mov eax, dword [esp + 4]
mov esi, eax
sub esi, edx
jb 0x547ffe
cmp eax, dword [esp + 4]
ja 0x547ffe
jae 0x544dc0
cmp dword [esp + 0x50], 0xa
jae 0x544dc0
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 4]
lea esi, [eax + 0xa]
cmp esi, edx
cmovae esi, edx
mov dword [esp + 0x44], esi
sub esi, eax
jb 0x548030
mov eax, dword [esp + 0x50]
mov edx, 1
cmp eax, 2
cmovb eax, edx
mov edx, esi
push eax
call fcn.00511780
add esp, 4
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
je 0x544dd1
jmp 0x544e3c
mov esi, ecx
mov ecx, dword [ecx]
mov dword [esp + 0x18], esi
mov esi, dword [esi + 8]
mov dword [esp + 0x50], ecx
cmp esi, ecx
jae 0x5450f0
cmp eax, 2
jne 0x545109
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x545169
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
jne 0x544e3c
lea eax, [edi + edi]
mov dword [esp + 0x84], eax
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x544dfe
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x548017
mov dword [0x6320d0], eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x548017
lea ecx, [edi*8]
push ecx
push ebx
push eax
mov dword [esp + 0x5c], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push ebx
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x30]
mov dword [ebx + edi*8], esi
mov dword [ebx + edi*8 + 4], eax
inc edi
cmp edi, 2
jb 0x544cd5
mov dword [esp + 0xc], ebx
jmp 0x544eb8
mov ecx, dword [esp]
mov eax, dword [esp + 0x50]
sub eax, ecx
push eax
push ecx
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
add ecx, esi
mov dword [ebx + eax*8 + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebx + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x48]
not eax
add ecx, eax
lea eax, [edx + 8]
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edi, dword [esp + 0x1c]
cmp edi, 1
jbe 0x544cd0
mov eax, dword [ebx + edi*8 - 8]
mov ecx, dword [ebx + edi*8 - 4]
mov esi, edi
add ecx, eax
cmp ecx, dword [esp + 4]
je 0x544f10
mov edx, dword [ebx + esi*8 - 0x10]
cmp edx, eax
jbe 0x544f10
cmp esi, 3
jb 0x54521b
lea ecx, [esi - 3]
mov edi, esi
mov dword [esp + 0x20], ecx
mov ecx, dword [ebx + esi*8 - 0x18]
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x5450db
cmp edi, 4
jb 0x545225
add edx, ecx
mov esi, edi
cmp dword [ebx + edi*8 - 0x20], edx
mov edx, dword [esp + 0x20]
jbe 0x544f1c
jmp 0x54522f
cmp esi, 3
jb 0x544f20
mov ecx, dword [ebx + esi*8 - 0x18]
lea edx, [esi - 3]
cmp ecx, eax
jb 0x544f23
lea edx, [esi - 2]
cmp esi, edx
jbe 0x547ef8
lea eax, [edx + 1]
cmp esi, eax
jbe 0x547f0a
mov eax, dword [ebx + edx*8 + 8]
mov edi, dword [ebx + edx*8 + 0xc]
mov ecx, dword [ebx + edx*8 + 4]
add edi, eax
mov ebx, edi
sub ebx, ecx
mov dword [esp + 0x30], ebx
jb 0x547f49
cmp edi, dword [esp + 4]
mov dword [esp + 8], eax
ja 0x547f61
lea eax, [esi - 1]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], eax
lea eax, [esi + edx*8]
mov edx, dword [esi + edx*8]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x28], eax
lea ecx, [esi + ecx*8]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x10], edx
lea ebx, [ecx + edx*8]
sub esi, edx
cmp esi, edx
jae 0x545050
mov dword [esp + 0x18], ecx
lea eax, [esi*8]
push eax
push ebx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 8]
mov edi, edx
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
test edi, edi
lea eax, [esi + eax*8]
mov dword [esp + 0x50], eax
jle 0x545036
test ecx, ecx
jle 0x545036
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x30], eax
nop dword [eax + eax]
mov eax, dword [ecx - 8]
mov edx, dword [ebx - 8]
mov edi, 0
mov esi, 0
cmp eax, edx
sbb edi, edi
cmp eax, edx
adc esi, 0xffffffff
cmp eax, edx
lea ebx, [ebx + edi*8]
mov edx, dword [esp + 0x30]
lea ecx, [ecx + esi*8]
mov eax, ecx
cmovb eax, ebx
cmp ebx, dword [esp + 0x18]
movq xmm0, qword [eax]
movq qword [edx], xmm0
jbe 0x545032
add dword [esp + 0x30], 0xfffffff8
cmp ecx, dword [esp]
ja 0x544ff0
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
mov edi, ebx
mov esi, dword [esp + 0x10]
jmp 0x544e63
lea eax, [edx*8]
push eax
mov edi, ecx
push ecx
mov esi, dword [esp + 8]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x10], 0
lea eax, [esi + eax*8]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x50], eax
jle 0x544e60
cmp dword [esp + 0x30], esi
jle 0x544e60
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x14]
lea eax, [eax + ecx*8]
mov ecx, dword [esp]
mov dword [esp + 0x30], eax
nop
mov esi, dword [ebx]
xor eax, eax
xor edx, edx
cmp esi, dword [ecx]
mov esi, ecx
cmovb esi, ebx
setae al
movq xmm0, qword [esi]
lea ecx, [ecx + eax*8]
setb al
movq qword [edi], xmm0
add edi, 8
cmp ecx, dword [esp + 0x50]
jae 0x54503b
mov dl, al
lea ebx, [ebx + edx*8]
cmp ebx, dword [esp + 0x30]
jb 0x5450a0
jmp 0x54503b
mov edx, dword [esp + 0x20]
mov esi, edi
cmp ecx, eax
jae 0x544f20
jmp 0x544f23
cmp eax, 2
jne 0x545130
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x544d09
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
nop dword [eax + eax]
mov edx, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, edx
jae 0x545150
inc edi
cmp eax, edi
jne 0x545120
jmp 0x54514e
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], ebx
mov edi, 2
mov ebx, esi
nop
mov edx, ebx
mov ebx, dword [ecx + edi*8]
cmp ebx, edx
jb 0x545150
inc edi
cmp eax, edi
jne 0x545140
mov edi, eax
mov edx, dword [esp + 0x30]
cmp esi, dword [esp + 0x50]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x50], edi
lea eax, [edi + edx]
jae 0x544d09
cmp eax, edx
jb 0x548067
cmp eax, dword [esp + 4]
ja 0x548050
mov esi, dword [esp + 0x50]
cmp esi, 2
jae 0x54518d
mov edx, dword [esp + 0x30]
jmp 0x544d09
mov edx, esi
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0xc], ebx
shr edx, 1
cmp esi, 0x18
jb 0x545238
mov eax, dword [esp + 0x30]
lea edi, [esi + eax]
mov esi, dword [esp + 0x7c]
lea eax, [edx*8 - 8]
lea esi, [esi + edi*8]
mov ebx, esi
sub ebx, eax
cmp ebx, esi
ja 0x545236
lea esi, [edx - 1]
cmp esi, 0x1fffffff
ja 0x545236
mov esi, dword [esp + 0x2c]
lea esi, [esi + edi*8]
mov ebx, esi
sub ebx, eax
mov eax, 0
cmp ebx, esi
ja 0x545238
shl edi, 3
mov eax, edx
mov ebx, ecx
add edi, dword [esp + 0x78]
and eax, 0xfffffffe
mov esi, eax
movdqu xmm0, xmmword [ebx]
movdqu xmm1, xmmword [edi]
pshufd xmm1, xmm1, 0x4e
pshufd xmm0, xmm0, 0x4e
movdqu xmmword [ebx], xmm1
movdqu xmmword [edi], xmm0
add ebx, 0x10
add edi, 0xfffffff0
add esi, 0xfffffffe
jne 0x5451f0
cmp edx, eax
jne 0x545238
jmp 0x545279
mov edi, 2
jmp 0x544cd5
mov edi, 3
jmp 0x544cd5
mov edi, esi
jmp 0x544cd5
xor eax, eax
mov ebx, dword [esp + 0x30]
sub edx, eax
lea esi, [ebx*8]
lea edi, [esi + eax*8]
mov esi, dword [esp + 0x50]
shl eax, 3
add edi, dword [esp + 0x4c]
add ebx, esi
shl ebx, 3
sub ebx, eax
add ebx, dword [esp + 0x2c]
nop
movq xmm0, qword [edi]
movq xmm1, qword [ebx]
movq qword [edi], xmm1
movq qword [ebx], xmm0
add edi, 8
add ebx, 0xfffffff8
dec edx
jne 0x545260
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
jmp 0x544d09
push ebx
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
push dword [esp]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x6c], 8
mov dword [esp + 0x70], 0
mov dword [esp + 0xa4], 8
mov dword [esp + 0xa8], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xac], 0
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x144], ecx
mov dword [esp + 0x148], eax
mov dword [esp + 0x14c], 0
lea ecx, [esp + 0x188]
lea edx, [esp + 0x144]
mov dword [esp + 0x84], ecx
call fcn.0051ae10
mov ecx, dword [esp + 0x188]
cmp ecx, 3
jne 0x545442
mov ebx, dword [esp + 0xac]
mov esi, dword [esp + 0xa4]
inc ebx
mov ecx, esi
nop word cs:[eax + eax]
nop dword [eax]
cmp ebx, 1
je 0x545365
lea edi, [ecx + 0x150]
dec ebx
call fcn.0050f050
mov ecx, edi
jmp 0x545350
cmp dword [esp + 0xa8], 0
je 0x54537d
push esi
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x70], 0
je 0x545395
push dword [esp + 0x6c]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x9c], 0
je 0x5453b3
push dword [esp + 0x98]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x94]
lock dec dword [eax]
jne 0x5453cd
mov bl, 1
lea ecx, [esp + 0x94]
call fcn.005158b0
mov eax, dword [esp + 0x11c]
mov byte [eax], 0x17
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x5453f5
cmp dword [eax + 0x2c], 0
je 0x5453f5
push dword [eax + 0x28]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xb0], 0
mov eax, dword [ebp + 8]
jne 0x54541d
cmp dword [eax], 0
je 0x54541d
cmp dword [eax + 0x2c], 0
je 0x54541d
push dword [eax + 0x28]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x120]
cmp dword [eax + 0x2c], 0
je 0x54543a
push dword [eax + 0x28]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea ebx, [esp + 0x1a0]
lea esi, [esp + 0xd0]
lea edi, [esp + 0x3c8]
jmp 0x545483
lea ecx, [esp + 0x188]
lea edx, [esp + 0x144]
call fcn.0051ae10
mov ecx, dword [esp + 0x188]
cmp ecx, 3
je 0x545331
mov eax, dword [esp + 0x18c]
movsd xmm2, qword [ebx + 8]
movq xmm1, qword [ebx]
movq xmm0, qword [esp + 0x190]
mov edx, dword [esp + 0x19c]
cmp ecx, 2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x198]
movsd qword [esp + 0x2e0], xmm2
movq xmm2, qword [ebx + 0x10]
movq qword [esp + 0x2d8], xmm1
movq qword [esp + 0x2e8], xmm2
je 0x5469f4
test ecx, ecx
jne 0x545460
movd ecx, xmm0
or ecx, 4
cmp ecx, 5
je 0x545460
mov ecx, dword [esp + 0x18]
movsd xmm1, qword [esp + 0x2e8]
mov dword [esp + 0xb8], 0
movq xmm2, qword [esp + 0x2d8]
mov dword [esp + 0xbc], ecx
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], edx
mov dword [esp + 0xc8], eax
mov ecx, dword [esp + 0xac]
mov edx, dword [esp + 0x8c]
movsd qword [esi + 0x10], xmm1
movq xmm1, qword [esp + 0x2e0]
movq qword [esi], xmm2
mov dword [esp + 0x10], ecx
movq qword [esi + 8], xmm1
lea eax, [esp + 0xb8]
lea ecx, [esp + 0x188]
push eax
call fcn.0051b870
add esp, 4
mov eax, dword [esp + 0x188]
xor eax, 2
or eax, dword [esp + 0x18c]
je 0x545460
push 0x108
lea eax, [esp + 0x18c]
push eax
lea eax, [esp + 0x328]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x410]
mov ecx, dword [esp + 0x3e4]
mov ebx, dword [esp + 0x3e0]
mov dword [esp + 4], eax
test ecx, ecx
lea eax, [eax + 8]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ecx
mov dword [esp + 0xf0], edi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf8], 0
je 0x54694b
mov edi, ecx
inc ebx
xor edx, edx
xor esi, esi
xor ecx, ecx
neg edi
nop word cs:[eax + eax]
nop
movzx eax, byte [ebx - 1]
cmp ecx, 0x3f
jne 0x545611
cmp al, 1
ja 0x54694b
mov dword [esp + 0x30], edx
mov edx, eax
mov dword [esp], edi
xor edi, edi
mov dword [esp + 0x50], esi
mov esi, 0
and dl, 0x7f
movzx edx, dl
shld edi, edx, cl
shl edx, cl
test cl, 0x20
cmovne edi, edx
cmovne edx, esi
or dword [esp + 0x30], edx
or dword [esp + 0x50], edi
test al, al
mov esi, dword [esp + 0x50]
mov edx, dword [esp + 0x30]
jns 0x54565c
mov edi, dword [esp]
add ecx, 7
inc ebx
inc edi
jne 0x545600
jmp 0x54694b
mov eax, dword [esp]
mov ecx, edx
mov dword [esp + 0xe8], ebx
or ecx, esi
not eax
mov dword [esp + 0xec], eax
jne 0x545734
mov ecx, dword [esp + 4]
lea esi, [esp + 0xd0]
lock dec dword [ecx]
jne 0x54568e
call fcn.00515960
mov eax, dword [esp + 0x330]
lea ebx, [esp + 0x1a0]
lea edi, [esp + 0x3c8]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x545460
cmp dword [esp + 0x388], 0
je 0x5456d1
push dword [esp + 0x384]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x5456ef
push dword [esp + 0x390]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x54570d
push dword [esp + 0x39c]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x545460
push dword [esp + 0x3a8]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
jmp 0x545460
mov ecx, dword [esp + 4]
test esi, esi
jne 0x54574f
lea eax, [edx - 1]
cmp eax, dword [ecx + 0x10]
jae 0x54574f
imul esi, eax, 0x68
add esi, dword [ecx + 8]
jmp 0x5457fc
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x54694b
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
movzx eax, word [ecx + 0x4d6]
mov esi, 0xffffffff
xor ebx, ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
imul eax, eax, 0x68
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add eax, ebx
je 0x5457ce
mov eax, dword [esp + 4]
mov ecx, dword [eax + esi*8 + 8]
mov edi, dword [eax + esi*8 + 0xc]
xor eax, eax
mov edx, ecx
mov dword [esp], edi
xor edi, dword [esp + 0x50]
xor edx, dword [esp + 0x30]
or edx, edi
setne al
cmp dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x50]
sbb ecx, dword [esp]
mov ecx, 0xff
cmovb eax, ecx
inc esi
add ebx, 0xffffff98
cmp al, 1
je 0x545782
movzx eax, al
test eax, eax
jne 0x5457d2
jmp 0x5457f3
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
sub eax, 1
jb 0x54694b
mov ecx, dword [ecx + esi*4 + 0x4d8]
mov dword [esp + 0xc], eax
jmp 0x545765
mov esi, dword [esp + 4]
sub esi, ebx
add esi, 0xfffffff0
cmp byte [esi + 0x62], 1
jne 0x54580d
mov dword [esp + 0xf8], 1
push esi
call fcn.0044eac0
add esp, 4
test edx, edx
je 0x546106
mov ecx, dword [esp + 0x3e8]
mov edi, dword [esp + 0x420]
mov esi, dword [esp + 0x8c]
shl edx, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
add edx, eax
mov dword [esp], edx
mov dword [esp + 0x30], edi
mov edi, ecx
movzx ebx, ch
mov dword [esp + 0x44], ecx
mov dword [esp + 0x50], esi
and edi, 0xff00
mov dword [esp + 4], ebx
mov dword [esp + 0x20], edi
mov edi, ecx
movzx ecx, cl
shr edi, 0x10
mov dword [esp + 0x7c], ecx
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov ebx, eax
mov eax, dword [esp + 0xf0]
movq qword [esp + 0x110], xmm1
movq qword [esp + 0x108], xmm0
mov eax, dword [eax + 0x20]
movq qword [esp + 0x158], xmm1
movq qword [esp + 0x150], xmm0
lea ecx, [esp + 0x188]
lea esi, [esp + 0x150]
lea edx, [esp + 0xe8]
push esi
push eax
call fcn.00517cb0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x54694b
mov edx, dword [esp + 0x198]
movq xmm0, qword [esp + 0x190]
mov esi, dword [esp + 0x19c]
add ebx, 0x10
cmp dx, 0x55
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jne 0x545cf1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x190]
mov esi, dword [esp + 0x50]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x545db1
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x54694b
mul dword [esp + 4]
jo 0x54694b
sub ecx, eax
jb 0x54694b
mov edx, dword [esi + 0x60]
add edx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0x800
jne 0x545b4f
cmp ecx, 8
jb 0x54694b
cmp dword [edx + eax + 4], 0
jne 0x54694b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x5465a1
cmp dword [esp + 0x20], 0x800
mov ecx, ebx
jne 0x545b6e
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
mov eax, dword [esp + 0xf0]
mov ebx, ecx
movq qword [esp + 0x110], xmm1
movq qword [esp + 0x108], xmm0
mov eax, dword [eax + 0x20]
movq qword [esp + 0x158], xmm1
movq qword [esp + 0x150], xmm0
lea ecx, [esp + 0x188]
lea esi, [esp + 0x150]
lea edx, [esp + 0xe8]
push esi
push eax
call fcn.00517cb0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x54694b
mov edx, dword [esp + 0x198]
movq xmm0, qword [esp + 0x190]
mov esi, dword [esp + 0x19c]
cmp dx, 0x55
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jne 0x545d26
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x190]
mov esi, dword [esp + 0x50]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x545ce4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x54694b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x54694b
test dl, dl
jne 0x54694b
cmp ecx, 8
jb 0x54694b
mov ecx, dword [esi + 0x60]
add ecx, dword [esp + 0x30]
cmp dword [eax + ecx + 4], 0
jne 0x54694b
mov eax, dword [eax + ecx]
add ebx, 0x10
mov ecx, ebx
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
jne 0x545a01
jmp 0x54659d
cmp ecx, 4
jb 0x54694b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x5465a1
mov ecx, ebx
movq xmm0, qword [ecx]
movq xmm1, qword [ecx + 8]
mov eax, dword [esp + 0xf0]
mov ebx, ecx
movq qword [esp + 0x110], xmm1
movq qword [esp + 0x108], xmm0
mov eax, dword [eax + 0x20]
movq qword [esp + 0x158], xmm1
movq qword [esp + 0x150], xmm0
lea ecx, [esp + 0x188]
lea esi, [esp + 0x150]
lea edx, [esp + 0xe8]
push esi
push eax
call fcn.00517cb0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x54694b
mov edx, dword [esp + 0x198]
movq xmm0, qword [esp + 0x190]
mov esi, dword [esp + 0x19c]
cmp dx, 0x55
movq qword [esp + 0xc0], xmm0
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
jne 0x545cb1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov ecx, dword [esp + 0x188]
mov eax, dword [esp + 0x190]
mov esi, dword [esp + 0x50]
mov edx, ecx
and dl, 0x3f
cmp dl, 0x18
jne 0x545ce4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x54694b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x54694b
test dl, dl
jne 0x54694b
cmp ecx, 4
jb 0x54694b
mov ecx, dword [esi + 0x60]
mov edx, dword [esp + 0x30]
add ecx, edx
mov eax, dword [eax + ecx]
mov ecx, ebx
add ecx, 0x10
add eax, edx
cmp ecx, dword [esp]
mov dword [esp + 0x1c], eax
jne 0x545b6e
jmp 0x5465a1
mov esi, dword [esp + 0x50]
movzx ecx, dx
cmp ecx, 0x11
je 0x545df4
cmp ecx, 0x12
mov eax, ebx
je 0x545d9f
cmp ecx, 0x13
jne 0x545fed
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x545d53
cmp ecx, 0x16
jne 0x545d14
add ebx, 0x10
jmp 0x545db6
mov esi, dword [esp + 0x50]
movzx eax, dx
cmp eax, 0x11
je 0x545dff
cmp eax, 0x12
je 0x545ede
cmp eax, 0x13
je 0x545d53
jmp 0x5460ec
mov eax, ebx
mov dword [esp + 0x24], 0
add eax, 0x10
jmp 0x5460ee
movzx eax, dx
cmp eax, 0x11
je 0x545df0
cmp eax, 0x12
je 0x545ecf
cmp eax, 0x13
jne 0x545feb
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0xc]
xor eax, 0x26
or eax, dword [esp + 0x18c]
mov eax, 1
cmove ecx, eax
mov dword [esp + 0xc], ecx
movzx ecx, word [esp + 0x68]
cmove cx, word [esp + 0x190]
mov word [esp + 0x68], cx
jmp 0x5460ec
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x545ede
cmp ecx, 0x16
jne 0x545de3
cmp di, 5
mov edx, 0
mov ecx, 0
mov dword [esp + 0x24], 1
cmovb edx, dword [esp + 0x30]
cmp byte [esi + 0x70], 0
cmove edx, ecx
add edx, eax
mov dword [esp + 0x1c], edx
jmp 0x5460ec
mov dword [esp + 0x24], 0
jmp 0x5460ec
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x545ea1
cmp eax, 0xc
jne 0x5460ec
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x54694b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x54694b
mov edx, esi
sub edx, eax
jb 0x54694b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x54694b
mov dword [esp + 8], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x548528]
add eax, dword [ecx + 8]
add edi, dword [esp + 0xb4]
mov ecx, eax
mov eax, dword [esp + 8]
jmp edi
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x48], 0
mov dword [esp + 8], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x130], ecx
jmp 0x5460ec
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.00519e70
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x545fba
cmp eax, 7
je 0x545f89
cmp eax, 0xc
jne 0x5460ec
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x54694b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x54694b
mov edx, esi
sub edx, eax
jb 0x54694b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x54694b
mov dword [esp + 0x28], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x548508]
add eax, dword [ecx + 8]
add edi, dword [esp + 0xb4]
mov ecx, eax
mov eax, dword [esp + 0x28]
jmp edi
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x300], eax
mov dword [esp + 0x2fc], ecx
jmp 0x5460ec
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x194]
mov dword [esp + 0x14], 0
mov dword [esp + 0x28], 1
mov dword [esp + 0x88], eax
mov dword [esp + 0x170], ecx
jmp 0x5460ec
mov eax, ebx
mov ecx, dword [esp]
add eax, 0x10
mov dword [esp + 0x24], 1
cmp eax, ecx
jne 0x5458a6
jmp 0x54659d
mov eax, ebx
mov edx, dword [esp]
cmp eax, edx
jne 0x5458a6
cmp dword [esp + 0x24], 0
jne 0x5465a1
jmp 0x54613e
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
mov eax, dword [esp + 0xa0]
test eax, eax
mov dword [esp + 0x30], eax
je 0x546197
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
xor edi, edi
mov edx, esi
jmp 0x546164
mov esi, edx
sub edx, edi
jbe 0x546197
mov eax, dword [esp + 0x18]
shr edx, 1
xor ebx, ebx
add edx, edi
cmp dword [ecx + edx*8], eax
mov eax, 0xff
setne bl
cmovb ebx, eax
cmp bl, 1
je 0x54615e
movzx edi, bl
cmp edi, 0xff
jne 0x5462b9
mov edi, edx
mov edx, esi
inc edi
jmp 0x54615e
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x48]
mov eax, ecx
or eax, edx
je 0x546214
mov eax, dword [esp + 0x14]
or dword [esp + 0x28], eax
je 0x546214
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x130]
cmp dword [esp + 0x78], eax
sbb ecx, dword [esp + 0x170]
jae 0x5462b2
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x5461e5
lea ecx, [esp + 0x6c]
call fcn.00515d50
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x130]
mov ecx, edx
shl ecx, 5
mov dword [eax + ecx + 4], esi
mov esi, dword [esp + 0x78]
mov dword [eax + ecx], esi
mov esi, dword [esp + 0x170]
mov dword [eax + ecx + 0xc], esi
mov esi, dword [esp + 0x88]
jmp 0x546287
xor ebx, ebx
or ecx, edx
je 0x546702
mov eax, dword [esp + 0x2c]
or dword [esp + 0x4c], eax
je 0x546702
mov esi, dword [esp + 0x300]
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x2fc]
mov ecx, dword [esp + 0x130]
add esi, eax
adc edi, ecx
cmp eax, esi
mov ecx, ecx
sbb ecx, edi
jae 0x5462b2
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x546268
lea ecx, [esp + 0x6c]
call fcn.00515d50
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x130]
mov ecx, edx
shl ecx, 5
mov dword [eax + ecx + 4], ebx
mov ebx, dword [esp + 0x78]
mov dword [eax + ecx], ebx
mov dword [eax + ecx + 0xc], edi
mov edi, dword [esp + 0x10]
mov bl, 1
inc edx
mov dword [eax + ecx + 8], esi
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
and bl, 1
mov dword [eax + ecx + 0x18], edi
mov dword [esp + 0x74], edx
jmp 0x546705
xor ebx, ebx
jmp 0x546702
mov ebx, dword [esp + 0x30]
lea edi, [edx - 1]
cmp edi, ebx
jae 0x54692d
inc edx
cmp edx, 1
je 0x5462e6
mov eax, dword [esp + 0x18]
lea esi, [edx - 1]
cmp dword [ecx + edx*8 - 0x10], eax
mov edx, esi
je 0x5462c9
cmp ebx, esi
jae 0x5462e8
jmp 0x548150
xor esi, esi
cmp esi, ebx
jne 0x5462f3
xor ebx, ebx
jmp 0x546705
lea eax, [ecx + ebx*8]
lea esi, [ecx + esi*8]
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
jmp 0x546318
mov esi, dword [esp + 8]
add esi, 8
cmp esi, dword [esp + 0x48]
je 0x546924
mov eax, dword [esp + 0x18]
cmp dword [esi], eax
jne 0x546924
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x14]
sub ecx, eax
jb 0x54694b
mov edx, dword [edx + 0x10]
add edx, eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
push eax
call fcn.0051f0c0
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x54694b
mov eax, dword [esp + 0x194]
mov dword [esp + 8], esi
test eax, eax
je 0x546307
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x50], ecx
movzx ecx, byte [esp + 0x1a4]
mov dword [esp + 0x20], eax
add al, al
add al, cl
mov dword [esp + 4], ecx
movzx eax, al
mov dword [esp], eax
mov esi, dword [esp + 0x30]
cmp esi, dword [esp]
jb 0x546307
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x50]
cmp ecx, 8
ja 0x54694b
mov edx, dword [ecx*4 + 0x548548]
xor eax, eax
xor ecx, ecx
add edx, dword [esp + 0xb4]
jmp edx
mov esi, dword [esp + 0x50]
xor ecx, ecx
lea eax, [esi + 0x58]
lea edx, [esi + 0x60]
cmp di, 5
mov ebx, edi
mov edi, dword [esp + 0x1c]
cmovae eax, edx
setae dl
mov eax, dword [eax + 4]
sub eax, edi
jb 0x54694b
mov cl, dl
mov edx, dword [esi + 8]
movq xmm0, qword [esp + 0x408]
lea ecx, [ecx*8 + 0x58]
mov ecx, dword [esi + ecx]
mov esi, dword [esi + 0xc]
movq qword [esp + 0x188], xmm0
mov dword [esp + 0x190], edx
mov edx, dword [esp + 0x418]
mov dword [esp + 0x194], esi
add ecx, edi
cmp bx, 5
mov dword [esp + 0x198], edx
mov edx, dword [esp + 0x44]
mov word [esp + 0x19c], dx
mov word [esp + 0x19e], bx
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
setae byte [esp + 0x1a8]
xor ebx, ebx
mov byte [esp + 0x1ab], 0
mov word [esp + 0x1a9], 0
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x188]
call fcn.0051f410
mov eax, dword [esp + 0xb8]
movdqu xmm1, xmmword [esp + 0xc0]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x5466ef
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
sbb eax, edx
jae 0x546648
mov edx, dword [esp + 0x74]
movdqa xmmword [esp + 0x30], xmm1
cmp edx, dword [esp + 0x70]
jne 0x5466b7
lea ecx, [esp + 0x6c]
call fcn.00515d50
mov edx, dword [esp + 0x74]
movdqa xmm0, xmmword [esp + 0x30]
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x10]
mov ecx, edx
inc edx
mov bl, 1
shl ecx, 5
movdqu xmmword [eax + ecx], xmm0
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], esi
mov dword [esp + 0x74], edx
jmp 0x546648
cmp eax, 2
jne 0x546702
movd eax, xmm1
cmp al, 0x4b
mov bl, ah
jne 0x54694b
and bl, 1
test bl, 1
lea ebx, [esp + 0x1a0]
lea ecx, [esp + 0x330]
mov dword [esp + 0xb8], 2
jne 0x546788
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x546788
lea eax, [esp + 0x320]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x188], eax
lea eax, [esp + 0xe8]
mov dword [esp + 0x18c], eax
lea eax, [esp + 0x8c]
mov dword [esp + 0x190], eax
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x188]
call fcn.00525f20
cmp dword [esp + 0xb8], 0
je 0x54689b
push 0x108
lea eax, [esp + 0x324]
push eax
lea eax, [esp + 0x190]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
movsd xmm1, qword [esp + 0xc0]
movq xmm0, qword [esp + 0xb8]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x68]
movsd qword [ebx + 0xf8], xmm1
movq xmm1, qword [esp + 0xc8]
cmp edx, dword [esp + 0xa8]
movq qword [ebx + 0xf0], xmm0
movq qword [ebx + 0x100], xmm1
mov dword [esp + 0x2d4], eax
mov eax, dword [esp + 0xc]
mov word [esp + 0x2d0], ax
mov word [esp + 0x2d2], cx
mov dword [esp + 0x2a8], 2
mov byte [esp + 0x2c0], 0x4c
jne 0x546838
lea ecx, [esp + 0xa4]
call fcn.005163a0
lea edi, [esp + 0x3c8]
mov edx, dword [esp + 0xac]
jmp 0x54683f
lea edi, [esp + 0x3c8]
imul eax, edx, 0x150
add eax, dword [esp + 0xa4]
push 0x150
lea esi, [esp + 0x18c]
push esi
push eax
mov esi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc esi
mov dword [esp + 0xac], esi
lea ecx, [esp + 0x188]
lea edx, [esp + 0x144]
call fcn.0051ae10
mov ecx, dword [esp + 0x188]
lea esi, [esp + 0xd0]
cmp ecx, 3
jne 0x545483
jmp 0x545331
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x546788
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x74]
shl eax, 3
lea edi, [eax + eax*2]
add esi, 8
jmp 0x546905
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x6c]
movdqa xmm0, xmmword [esp + 0x50]
mov edi, dword [esp + 0x10]
mov ecx, edx
inc edx
add esi, 0x18
shl ecx, 5
movdqu xmmword [eax + ecx], xmm0
mov dword [eax + ecx + 0x14], 0
mov dword [eax + ecx + 0x10], 0
mov dword [eax + ecx + 0x18], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x74], edx
add edi, 0xffffffe8
je 0x546788
movdqu xmm0, xmmword [esi]
cmp edx, dword [esp + 0x70]
mov dword [esp + 0x30], edi
movdqa xmmword [esp + 0x50], xmm0
jne 0x5468c4
lea ecx, [esp + 0x6c]
call fcn.00515d50
jmp 0x5468c0
mov ebx, dword [esp + 0x24]
jmp 0x546705
xor esi, esi
test edx, edx
je 0x5462e8
push 0x5ff1d4
push ebx
push edi
call fcn.00425270
add esp, 0xc
jmp 0x54815f
mov ecx, dword [esp + 0x410]
lock dec dword [ecx]
jne 0x54695c
call fcn.00515960
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x545331
cmp dword [esp + 0x388], 0
je 0x546991
push dword [esp + 0x384]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x5469af
push dword [esp + 0x390]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x5469cd
push dword [esp + 0x39c]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x545331
push dword [esp + 0x3a8]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
jmp 0x545331
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
cmp esi, 0x15
mov dword [esp + 8], esi
jae 0x546a21
cmp esi, 1
jbe 0x547163
mov edx, esi
mov ecx, ebx
push 1
call fcn.00511610
add esp, 4
jmp 0x54716b
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x546a44
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x548124
mov dword [0x6320d0], eax
mov ecx, esi
shr ecx, 1
mov dword [esp + 0x7c], ecx
shl ecx, 5
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
mov dword [esp + 0x50], eax
je 0x548124
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x546a87
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x54813a
mov dword [0x6320d0], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x54813a
mov edi, eax
lea eax, [ebx + 0x40]
xor edx, edx
mov dword [esp + 0x44], 0x10
mov dword [esp + 0x14], ebx
mov dword [esp + 0x68], eax
lea eax, [ebx - 0x20]
mov dword [esp + 0x4c], eax
xor eax, eax
jmp 0x546ad1
mov edx, 1
mov eax, dword [esp + 0x2c]
cmp eax, esi
jae 0x54713c
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], edi
mov edi, eax
mov ebx, esi
sub esi, eax
mov dword [esp], eax
mov dword [esp + 0xc], edx
shl edi, 5
cmp esi, 2
mov dword [esp + 0x30], esi
lea ecx, [ecx + edi]
mov dword [esp + 0x10], ecx
jae 0x546bf0
mov ecx, ebx
mov esi, ebx
mov eax, dword [esp]
mov ebx, dword [esp + 0x14]
mov edi, ecx
sub edi, eax
jb 0x548037
cmp ecx, esi
ja 0x548037
jae 0x546c50
cmp dword [esp + 0x30], 0xa
jae 0x546c50
lea edi, [eax + 0xa]
cmp edi, esi
cmovae edi, esi
mov dword [esp + 0x2c], edi
sub edi, eax
jb 0x5480b0
mov esi, dword [esp + 0x30]
mov eax, 1
cmp esi, 2
cmovb esi, eax
mov ecx, dword [esp + 0x10]
mov edx, edi
push esi
call fcn.00511610
add esp, 4
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp edx, dword [esp + 0x44]
jne 0x546c5e
lea eax, [edx + edx]
mov dword [esp + 0x44], eax
mov eax, dword [0x6074b4]
movzx eax, byte [eax]
mov eax, dword [0x6320d0]
test eax, eax
jne 0x546b9d
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x548097
mov dword [0x6320d0], eax
mov edx, dword [esp + 0xc]
mov ecx, edx
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x548097
mov ecx, dword [esp + 0xc]
lea ecx, [ecx*8]
push ecx
push dword [esp + 0x1c]
push eax
mov dword [esp + 0x3c], eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
push dword [esp + 0x18]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
jmp 0x546c62
mov eax, dword [ecx + 0x24]
mov esi, dword [ecx + 0x20]
mov ebx, dword [ecx + 4]
mov dword [esp + 4], eax
mov eax, dword [ecx]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 4]
cmp esi, eax
mov dword [esp + 0x48], eax
sbb ecx, dword [esp + 0x20]
jae 0x546f70
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x546f92
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x54702d
mov dword [esp + 0x2c], ecx
cmp edx, dword [esp + 0x44]
je 0x546b6f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp]
mov dword [eax + edx*8], edi
mov edi, eax
mov dword [eax + edx*8 + 4], ecx
inc edx
cmp edx, 2
jb 0x546ac5
mov dword [esp + 0x18], edi
jmp 0x546cdf
mov eax, dword [esp + 0x50]
sub ebx, eax
push ebx
push eax
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add ecx, dword [esp + 4]
mov dword [edi + eax*8 + 8], ecx
mov ecx, dword [esp + 0x10]
mov dword [edi + eax*8 + 0xc], ecx
mov ecx, dword [esp + 0x20]
not eax
add ecx, eax
lea eax, [edx + 8]
shl ecx, 3
push ecx
push eax
push edx
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
cmp edx, 1
jbe 0x546ac0
mov eax, dword [edi + edx*8 - 8]
mov ecx, dword [edi + edx*8 - 4]
mov dword [esp + 0x20], edx
add ecx, eax
cmp ecx, esi
mov ecx, edx
je 0x546d40
mov edx, dword [edi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x546d40
cmp ecx, 3
jb 0x54711f
lea esi, [ecx - 3]
mov ebx, ecx
mov ecx, dword [edi + ecx*8 - 0x18]
mov dword [esp + 0x1c], esi
lea esi, [edx + eax]
cmp ecx, esi
jbe 0x546f4d
mov esi, dword [esp + 8]
cmp ebx, 4
jb 0x547129
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jbe 0x546d4c
jmp 0x547133
cmp ecx, 3
jb 0x546d54
lea edx, [ecx - 3]
mov ecx, dword [edi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jb 0x546d57
lea edx, [ecx - 2]
cmp ecx, edx
jbe 0x547f7c
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x547f8e
mov esi, ebx
mov eax, dword [edi + edx*8 + 4]
mov ebx, dword [edi + edx*8 + 8]
mov edi, dword [edi + edx*8 + 0xc]
add edi, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x10], eax
mov ebx, edi
sub ebx, eax
mov dword [esp], ebx
jb 0x547fd0
cmp edi, dword [esp + 8]
ja 0x547fe7
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x10]
shl edi, 5
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
shl ecx, 5
mov eax, dword [eax + edx*8]
add ecx, esi
mov esi, dword [esp]
mov dword [esp + 0x30], ecx
mov ebx, eax
sub esi, eax
mov dword [esp + 4], eax
shl ebx, 5
cmp esi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], esi
lea esi, [ecx + ebx]
lea eax, [eax + edx*8]
mov dword [esp + 0x24], eax
jae 0x546e90
mov ebx, dword [esp + 0x28]
shl ebx, 5
push ebx
push esi
push dword [esp + 0x58]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
add ebx, dword [esp + 0x50]
test eax, eax
jle 0x546c80
cmp dword [esp + 0x28], 0
jle 0x546c80
add edi, dword [esp + 0x4c]
nop word [eax + eax]
mov ecx, dword [ebx - 0x20]
mov edx, dword [ebx - 0x1c]
mov eax, ebx
mov ebx, 0
cmp ecx, dword [esi - 0x20]
sbb edx, dword [esi - 0x1c]
setb dl
setb cl
adc ebx, 0xffffffff
movzx edx, dl
shl ebx, 5
add ebx, eax
shl edx, 5
sub esi, edx
test cl, cl
mov eax, ebx
cmovne eax, esi
cmp esi, dword [esp + 0x30]
movsd xmm1, qword [eax + 8]
movq xmm0, qword [eax]
movsd qword [edi + 8], xmm1
movsd xmm1, qword [eax + 0x10]
movsd qword [edi + 0x10], xmm1
movq xmm1, qword [eax + 0x18]
movq qword [edi], xmm0
movq qword [edi + 0x18], xmm1
jbe 0x546c80
add edi, 0xffffffe0
cmp ebx, dword [esp + 0x50]
ja 0x546e20
jmp 0x546c80
push ebx
push ecx
push dword [esp + 0x58]
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 4]
add ebx, dword [esp + 0x50]
test eax, eax
jle 0x546f40
cmp dword [esp], eax
jle 0x546f40
add edi, dword [esp + 0x14]
mov eax, dword [esp + 0x50]
mov dword [esp], edi
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, eax
mov eax, dword [esi]
mov edi, dword [esp + 0x30]
mov edx, ecx
cmp eax, dword [ecx]
mov eax, dword [esi + 4]
sbb eax, dword [ecx + 4]
cmovb edx, esi
setae al
movsd xmm1, qword [edx + 8]
movq xmm0, qword [edx]
movzx eax, al
movsd qword [edi + 8], xmm1
movsd xmm1, qword [edx + 0x10]
movsd qword [edi + 0x10], xmm1
movq xmm1, qword [edx + 0x18]
setb dl
shl eax, 5
movq qword [edi], xmm0
add eax, ecx
movq qword [edi + 0x18], xmm1
add edi, 0x20
cmp eax, ebx
mov dword [esp + 0x30], edi
jae 0x546f44
mov edi, dword [esp]
movzx ecx, dl
shl ecx, 5
add esi, ecx
cmp esi, edi
jb 0x546ed0
jmp 0x546f44
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x30]
jmp 0x546c84
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jae 0x546d54
jmp 0x546d57
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x546fcd
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x546b08
add edi, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov eax, 2
nop word cs:[eax + eax]
nop dword [eax]
mov ecx, edx
mov ebx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ebx
mov ebx, edx
sbb ebx, ecx
jae 0x546fff
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x546fb0
jmp 0x546ffb
add edi, dword [esp + 0x68]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 4]
mov eax, 2
nop
mov ebx, edx
mov ecx, esi
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp esi, ecx
mov ecx, edx
sbb ecx, ebx
jb 0x546fff
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x546fe0
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x48]
mov edx, dword [esp]
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x1c], esi
mov esi, dword [esp + 0x20]
lea ecx, [eax + edx]
mov eax, edx
mov edx, dword [esp + 0xc]
sbb dword [esp + 4], esi
mov esi, dword [esp + 8]
jae 0x546b08
cmp ecx, eax
jb 0x5480dc
mov edi, esi
cmp ecx, esi
mov esi, dword [esp + 0x30]
ja 0x5480c8
cmp esi, 2
jae 0x54704f
mov esi, edi
jmp 0x546b08
mov edi, edx
mov edx, eax
mov eax, esi
add edx, esi
mov esi, dword [esp + 0x10]
shr eax, 1
shl edx, 5
add edx, dword [esp + 0x4c]
nop word cs:[eax + eax]
nop
movsd xmm0, qword [esi + 0x18]
movsd qword [esp + 0x1a0], xmm0
movsd xmm0, qword [esi + 0x10]
movsd qword [esp + 0x198], xmm0
movsd xmm0, qword [esi]
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x190], xmm1
movsd qword [esp + 0x188], xmm0
movsd xmm0, qword [edx + 0x18]
movsd qword [esi + 0x18], xmm0
movsd xmm0, qword [edx + 0x10]
movsd qword [esi + 0x10], xmm0
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [esi + 8], xmm1
movsd qword [esi], xmm0
add esi, 0x20
movsd xmm0, qword [esp + 0x1a0]
movsd qword [edx + 0x18], xmm0
movsd xmm0, qword [esp + 0x198]
movsd qword [edx + 0x10], xmm0
movq xmm0, qword [esp + 0x188]
movq xmm1, qword [esp + 0x190]
movq qword [edx + 8], xmm1
movq qword [edx], xmm0
add edx, 0xffffffe0
dec eax
jne 0x547070
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov edx, edi
jmp 0x546b08
mov edx, 2
jmp 0x546ac5
mov edx, 3
jmp 0x546ac5
mov edx, dword [esp + 0x20]
jmp 0x546ac5
push edi
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x50]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x5471b5
mov dword [esp + 8], esi
mov eax, esi
xor esi, esi
xor ecx, ecx
mov edx, ebx
mov dword [esp + 0x14], ebx
shl eax, 5
add eax, ebx
mov dword [esp + 0x30], eax
mov edi, dword [edx + 8]
mov ebx, dword [edx + 0xc]
cmp esi, edi
mov eax, edi
cmova eax, esi
cmp ecx, ebx
cmova edi, esi
mov esi, dword [esp + 0x30]
cmovbe ecx, ebx
cmove edi, eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x10], edi
add edx, 0x20
cmp edx, esi
mov esi, edi
jne 0x547180
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
jmp 0x5471b7
xor esi, esi
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0xac]
cmp dword [esp + 0x9c], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 4], edx
mov dword [esp + 0x20], ecx
je 0x5471fa
push dword [esp + 0x98]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
je 0x5453b3
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x14], ebx
mov dword [esp + 8], esi
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], edi
mov dword [esp + 0xc], ecx
mov ecx, dword [ecx + 0x70]
test ecx, ecx
je 0x547309
mov dword [esp + 0xe8], 8
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], ecx
mov dword [esp + 0x2e0], 0
lea ecx, [esp + 0x188]
lea edx, [esp + 0x2d8]
call fcn.0051ae10
mov eax, dword [esp + 0x188]
cmp eax, 3
jne 0x54732f
mov eax, dword [esp + 0x194]
mov edx, dword [esp + 0x19c]
movzx ebx, byte [esp + 0x190]
mov esi, dword [esp + 0x198]
mov dword [esp + 0x10], eax
mov dword [esp], edx
lea ecx, [esp + 0xe8]
call fcn.0050f520
cmp bl, 0x4b
mov ebx, dword [esp + 0x14]
je 0x547547
mov ecx, dword [esp + 4]
inc edi
nop word cs:[eax + eax]
cmp edi, 1
je 0x547517
lea esi, [ecx + 0x150]
dec edi
call fcn.0050f050
mov ecx, esi
jmp 0x5472f0
mov dword [esp + 0x150], 8
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
jmp 0x547567
add dword [esp + 0x18], 8
mov dword [esp], 0
mov dword [esp + 0x10], 8
jmp 0x547380
mov ebx, dword [esp + 0x14]
cmp eax, 2
je 0x547540
lea ecx, [esp + 0x188]
lea edx, [esp + 0x2d8]
call fcn.0051ae10
mov eax, dword [esp + 0x188]
cmp eax, 3
je 0x5472a4
mov edx, dword [esp + 0x19c]
movzx ecx, byte [esp + 0x190]
mov ebx, dword [esp + 0x18c]
movzx esi, byte [esp + 0x193]
movq xmm0, qword [esp + 0x194]
test eax, eax
mov dword [esp + 0x30], edx
lea edx, [esp + 0x1a0]
mov byte [esp + 0x50], cl
movzx ecx, word [esp + 0x191]
movsd xmm2, qword [edx + 8]
movq xmm1, qword [edx]
movsd qword [esp + 0xc0], xmm2
movq xmm2, qword [edx + 0x10]
movq qword [esp + 0xb8], xmm1
movq qword [esp + 0xc8], xmm2
jne 0x547350
movzx eax, byte [esp + 0x50]
shl esi, 0x10
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], ebx
movq xmm1, qword [esp + 0xc0]
movq xmm2, qword [esp + 0xc8]
or ecx, esi
mov byte [esp + 0x190], al
mov word [esp + 0x191], cx
shr ecx, 0x10
mov eax, dword [esp + 0x30]
mov byte [esp + 0x193], cl
movq qword [esp + 0x194], xmm0
movq xmm0, qword [esp + 0xb8]
mov dword [esp + 0x19c], eax
movq qword [edx + 8], xmm1
movq qword [edx + 0x10], xmm2
movq qword [edx], xmm0
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x188]
lea ecx, [esp + 0x320]
push eax
call fcn.0051b870
add esp, 4
mov eax, dword [esp + 0x320]
xor eax, 2
or eax, dword [esp + 0x324]
je 0x54735d
push 0x108
lea eax, [esp + 0x324]
push eax
lea eax, [esp + 0x190]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [esp]
mov dword [esp + 0x290], ebx
cmp edx, dword [esp + 0xec]
jne 0x5474df
lea ecx, [esp + 0xe8]
call fcn.00516260
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xf0]
jmp 0x5474e3
mov ecx, dword [esp + 0x10]
imul eax, edx, 0x110
mov dword [esp + 0x10], ecx
add eax, ecx
push 0x110
lea ecx, [esp + 0x18c]
push ecx
push eax
mov esi, edx
call sub.msvcrt.dll_memcpy
add esp, 0xc
inc esi
mov dword [esp], esi
mov dword [esp + 0xf0], esi
jmp 0x54735d
cmp dword [esp + 0x20], 0
je 0x54752f
push dword [esp + 4]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1c], 0
je 0x5453b3
push ebx
jmp 0x5453a6
mov esi, dword [esp + 0xec]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp]
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x158], ecx
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x1c], esi
mov dword [esp + 0x320], eax
mov eax, ebx
jbe 0x5475bb
mov esi, dword [esp + 8]
test esi, esi
je 0x5475a8
shl esi, 5
push esi
push ebx
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5475bb
push esi
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x54815f
push ebx
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
movq xmm0, qword [esp + 0x108]
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x30], eax
movq qword [esp + 0x188], xmm0
mov dword [esp + 0x190], ebx
cmp dword [esp + 0x18c], ebx
jbe 0x54761e
mov eax, dword [esp + 0x188]
test ebx, ebx
je 0x547627
imul esi, ebx, 0x150
push esi
push eax
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapReAlloc
mov edi, eax
test eax, eax
jne 0x54763a
push esi
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x54815f
mov edi, dword [esp + 0x188]
jmp 0x54763a
push eax
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov edi, 8
movq xmm0, qword [esp + 0x150]
mov esi, dword [esp + 0x158]
movq qword [esp + 0x188], xmm0
mov dword [esp + 0x190], esi
cmp dword [esp + 0x18c], esi
jbe 0x54769e
mov eax, dword [esp + 0x188]
test esi, esi
je 0x5476a7
imul ecx, esi, 0x110
mov dword [esp + 0x50], ecx
push ecx
push eax
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x5476ba
push dword [esp + 0x50]
push 8
call fcn.0041a8c0
add esp, 8
jmp 0x54815f
mov eax, dword [esp + 0x188]
jmp 0x5476ba
push eax
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
mov eax, 8
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov dword [esp + 0x304], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x308], ecx
mov dword [esp + 0x30c], edx
mov dword [esp + 0x310], edi
mov dword [esp + 0x314], ebx
mov dword [esp + 0x318], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x31c], esi
cmp dword [eax], 0
je 0x5478d4
movsd xmm2, qword [eax + 0x28]
movsd xmm1, qword [eax + 0x20]
movq xmm0, qword [eax + 0x30]
movsd qword [esp + 0x348], xmm2
movsd qword [esp + 0x340], xmm1
movsd xmm2, qword [eax + 0x18]
movsd xmm1, qword [eax + 0x10]
movq qword [esp + 0x350], xmm0
movsd qword [esp + 0x338], xmm2
movsd qword [esp + 0x330], xmm1
movq xmm2, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0x328], xmm1
movq qword [esp + 0x320], xmm2
mov edx, 0x5a920a
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov esi, edx
test eax, eax
mov edx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove esi, eax
cmovne edx, eax
lea ecx, [esp + 0x188]
push esi
call fcn.0051e030
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
je 0x547899
mov byte [esp + 0x78], al
mov ecx, dword [esp + 0x18c]
movsd xmm0, qword [esp + 0x198]
mov eax, dword [esp + 0x189]
mov dword [esp + 0x147], ecx
mov dword [esp + 0x144], eax
movzx eax, byte [esp + 0x190]
movaps xmmword [esp + 0x130], xmm0
movsd xmm0, qword [esp + 0x1a0]
mov byte [esp + 0xc], al
movzx eax, word [esp + 0x191]
movsd qword [esp + 0x2d8], xmm0
movsd xmm0, qword [esp + 0x1a8]
mov word [esp + 0x98], ax
movzx eax, byte [esp + 0x193]
movsd qword [esp + 0x2e0], xmm0
movsd xmm0, qword [esp + 0x1b0]
mov byte [esp + 0x9a], al
mov eax, dword [esp + 0x194]
movsd qword [esp + 0x2e8], xmm0
movq xmm0, qword [esp + 0x1b8]
mov dword [esp + 8], eax
movq qword [esp + 0x2f0], xmm0
mov edx, 0x5a92e9
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov esi, edx
test eax, eax
mov edx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove esi, eax
cmovne edx, eax
lea ecx, [esp + 0x188]
push esi
call fcn.0051e030
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
jne 0x5478db
mov eax, dword [esp + 0x11c]
cmp dword [esp + 0x34c], 0
mov byte [eax], 0x17
je 0x5478c1
push dword [esp + 0x348]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
xor ebx, ebx
lea ecx, [esp + 0x304]
call fcn.0050ef60
jmp 0x5453f5
mov dl, 0x16
jmp 0x547cab
mov byte [esp + 0x48], al
mov ecx, dword [esp + 0x18c]
movsd xmm0, qword [esp + 0x198]
mov eax, dword [esp + 0x189]
mov dword [esp + 0x10b], ecx
mov dword [esp + 0x108], eax
movzx eax, byte [esp + 0x190]
movaps xmmword [esp + 0x170], xmm0
movsd xmm0, qword [esp + 0x1a0]
mov byte [esp + 0x88], al
movzx eax, word [esp + 0x191]
movsd qword [esp + 0xb8], xmm0
movsd xmm0, qword [esp + 0x1a8]
mov word [esp + 0x124], ax
movzx eax, byte [esp + 0x193]
movsd qword [esp + 0xc0], xmm0
movsd xmm0, qword [esp + 0x1b0]
mov byte [esp + 0x126], al
mov eax, dword [esp + 0x194]
movsd qword [esp + 0xc8], xmm0
movq xmm0, qword [esp + 0x1b8]
mov dword [esp + 0x80], eax
movq qword [esp + 0xd0], xmm0
mov edx, 0x5a9304
lea ecx, [esp + 0x320]
push 0x11
call fcn.005487e0
add esp, 4
mov dword [esp + 0x30], edx
mov ecx, eax
test eax, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove eax, ecx
mov dword [esp + 0x30], eax
mov eax, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ecx, eax
mov dword [esp + 0x24], ecx
mov edx, 0x5a9315
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x7c], edx
mov ecx, dword [esp + 0x7c]
test eax, eax
cmove ecx, eax
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x68]
cmovne ecx, eax
mov dword [esp + 0x68], ecx
mov edx, 0x5a9324
lea ecx, [esp + 0x320]
push 0xf
call fcn.005487e0
add esp, 4
mov dword [esp + 0x50], edx
mov ebx, eax
test eax, eax
mov eax, dword [esp + 0x50]
mov dword [esp], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove eax, ebx
mov dword [esp + 0x50], eax
mov eax, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ebx, eax
mov edx, 0x5a9377
lea ecx, [esp + 0x320]
push 0xe
call fcn.005487e0
add esp, 4
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x18]
test eax, eax
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov ecx, dword [esp]
cmovne ecx, eax
mov dword [esp], ecx
mov edx, 0x5a9385
lea ecx, [esp + 0x320]
push 0x16
call fcn.005487e0
add esp, 4
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
test eax, eax
mov dword [esp + 4], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ecx, eax
mov dword [esp + 0x10], ecx
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove eax, ecx
mov dword [esp + 0x28], eax
mov edx, 0x5a9333
lea ecx, [esp + 0x320]
push 0xe
call fcn.005487e0
add esp, 4
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x20]
test eax, eax
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 4]
cmovne ecx, eax
mov dword [esp + 4], ecx
mov edx, 0x5a9341
lea ecx, [esp + 0x320]
push 0x13
call fcn.005487e0
add esp, 4
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
test eax, eax
mov esi, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
cmove ecx, eax
cmove eax, esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov edx, 0x5a9364
lea ecx, [esp + 0x320]
push 0x13
call fcn.005487e0
add esp, 4
test eax, eax
mov edi, edx
cmove edi, eax
cmovne esi, eax
mov edx, 0x5a939b
lea ecx, [esp + 0x320]
push 0x10
call fcn.005487e0
add esp, 4
movsd xmm0, qword [esp + 0x2d8]
test eax, eax
mov ecx, str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
movsd xmm1, qword [esp + 0x2e0]
mov dword [esp + 0x44], edi
mov dword [esp + 0x2c], esi
movzx edi, word [esp + 0x98]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x4c], ebx
cmovne ecx, eax
cmove edx, eax
cmp dword [esp + 0x34c], 0
mov eax, dword [esp + 0x144]
mov dword [esp + 0xb0], ecx
mov ecx, dword [esp + 0x147]
mov dword [esp + 0x84], edx
mov dh, byte [esp + 0x9a]
mov dl, byte [esp + 0x126]
movsd qword [esp + 0xe8], xmm0
movsd xmm0, qword [esp + 0x2e8]
movsd qword [esp + 0xf0], xmm1
movq xmm1, qword [esp + 0xc0]
mov word [esp + 0x8c], di
mov dword [esp + 0xa7], ecx
mov ecx, dword [esp + 0x10b]
mov dword [esp + 0xa4], eax
mov byte [esp + 0x8e], dh
mov byte [esp + 0x96], dl
movsd qword [esp + 0xf8], xmm0
movsd xmm0, qword [esp + 0x2f0]
movq qword [esp + 0x158], xmm1
mov dword [esp + 0x6f], ecx
movzx ecx, word [esp + 0x124]
mov dword [esp + 0x6c], esi
movsd qword [esp + 0x100], xmm0
movsd xmm0, qword [esp + 0xb8]
mov word [esp + 0x94], cx
movsd qword [esp + 0x150], xmm0
movsd xmm0, qword [esp + 0xc8]
movsd qword [esp + 0x160], xmm0
movq xmm0, qword [esp + 0xd0]
movq qword [esp + 0x168], xmm0
je 0x547c80
push dword [esp + 0x348]
push 0
push dword [0x6320d0]
call sub.KERNEL32.dll_HeapFree
movzx edx, byte [esp + 0x78]
movaps xmm6, xmmword [esp + 0x130]
mov dh, byte [esp + 0x88]
movaps xmm7, xmmword [esp + 0x170]
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x31c]
mov ecx, dword [esp + 0x11c]
movsd xmm0, qword [esp + 0x314]
movsd xmm1, qword [esp + 0x30c]
mov dword [ecx + 0x110], eax
mov eax, dword [esp + 0x120]
movsd qword [ecx + 0x108], xmm0
movsd xmm0, qword [esp + 0x304]
movsd qword [ecx + 0x100], xmm1
movsd qword [ecx + 0xf8], xmm0
movsd xmm0, qword [eax + 0x30]
movsd xmm1, qword [eax + 0x20]
movsd xmm2, qword [eax + 0x18]
movq xmm3, qword [eax + 0x10]
movsd xmm4, qword [eax]
movsd xmm5, qword [eax + 8]
movsd qword [ecx + 0xf0], xmm0
movsd xmm0, qword [eax + 0x28]
mov eax, dword [esp + 0xa4]
movsd qword [ecx + 0xe0], xmm1
movsd qword [ecx + 0xd8], xmm2
movq qword [ecx + 0xd0], xmm3
movsd qword [ecx + 0xc8], xmm5
movsd qword [ecx + 0xc0], xmm4
movsd xmm1, qword [esp + 0xf0]
movq xmm2, qword [esp + 0x168]
movsd qword [ecx + 0xe8], xmm0
mov dword [ecx + 1], eax
mov eax, dword [esp + 0xa7]
movsd xmm0, qword [esp + 0xe8]
mov dword [ecx + 4], eax
movzx eax, word [esp + 0x8c]
mov word [ecx + 9], ax
movzx eax, byte [esp + 0x8e]
mov byte [ecx + 0xb], al
movsd qword [ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0xf8]
mov eax, dword [esp + 0x6c]
movsd qword [ecx + 0x20], xmm1
movsd xmm1, qword [esp + 0x158]
movsd qword [ecx + 0x28], xmm0
movsd xmm0, qword [esp + 0x100]
movsd qword [ecx + 0x30], xmm0
mov dword [ecx + 0x39], eax
mov eax, dword [esp + 0x6f]
movq xmm0, qword [esp + 0x150]
mov dword [ecx + 0x3c], eax
movzx eax, word [esp + 0x94]
mov word [ecx + 0x41], ax
movzx eax, byte [esp + 0x96]
mov byte [ecx + 0x43], al
movsd qword [ecx + 0x58], xmm1
movq xmm1, qword [esp + 0x160]
movzx eax, byte [esp + 0xc]
movq qword [ecx + 0x50], xmm0
movq qword [ecx + 0x68], xmm2
movq qword [ecx + 0x60], xmm1
mov byte [ecx], dl
mov byte [ecx + 8], al
mov eax, dword [esp + 8]
mov dword [ecx + 0xc], eax
movzx eax, byte [esp + 0x48]
movlps qword [ecx + 0x10], xmm6
mov byte [ecx + 0x38], al
mov byte [ecx + 0x40], dh
mov dword [ecx + 0x44], edi
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x30]
movlps qword [ecx + 0x48], xmm7
mov dword [ecx + 0x70], edi
mov dword [ecx + 0x74], edx
mov dword [ecx + 0x78], esi
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov dword [ecx + 0x7c], ebx
mov dword [ecx + 0x80], esi
mov dword [ecx + 0x84], edx
mov esi, dword [esp]
mov edx, dword [esp + 0x18]
mov dword [ecx + 0x88], esi
mov dword [ecx + 0x8c], edx
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
mov dword [ecx + 0x90], esi
mov dword [ecx + 0x94], edx
mov esi, dword [esp + 4]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x98], esi
mov dword [ecx + 0x9c], edx
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov dword [ecx + 0xa0], esi
mov dword [ecx + 0xa4], edx
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov dword [ecx + 0xa8], esi
mov dword [ecx + 0xac], edx
mov esi, dword [esp + 0xb0]
mov edx, dword [esp + 0x84]
mov dword [ecx + 0xb0], esi
mov dword [ecx + 0xb4], edx
mov dword [ecx + 0xb8], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov dword [ecx + 0xbc], 0
jmp 0x54543a
mov dword [esp + 0x188], 0x5fe4ec
mov eax, 0x5fe778
jmp 0x547f1a
mov eax, 0x5fe788
mov dword [esp + 0x188], 0x5fe4ec
mov ecx, dword [esp + 0x68]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov dword [ecx + 0xc], 0
push eax
push ecx
call fcn.00425150
add esp, 8
jmp 0x54815f
push 0x5fe798
push edi
push ecx
mov ebx, dword [esp + 0x18]
call fcn.00428850
add esp, 0xc
jmp 0x54815f
push 0x5fe798
push dword [esp + 8]
push edi
mov ebx, dword [esp + 0x18]
call fcn.004287f0
add esp, 0xc
jmp 0x54815f
mov dword [esp + 0x188], 0x5fe4ec
mov eax, 0x5fe778
jmp 0x547f9e
mov eax, 0x5fe788
mov dword [esp + 0x188], 0x5fe4ec
mov ecx, dword [esp + 0x84]
mov dword [ecx + 4], 1
mov dword [ecx + 0x10], 0
mov dword [ecx + 8], str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
mov dword [ecx + 0xc], 0
push eax
push ecx
call fcn.00425150
add esp, 8
jmp 0x54815f
push 0x5fe798
push edi
push dword [esp + 0x18]
call fcn.00428850
add esp, 0xc
jmp 0x54815f
push 0x5fe798
push dword [esp + 0xc]
push edi
call fcn.004287f0
add esp, 0xc
jmp 0x54815f
push 0x5fe824
push 0x2c
push 0x5fe7f8
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5fe7c8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
mov eax, 0x5fe7e8
jmp 0x548070
push 0x5fe824
push 0x2c
push 0x5fe7f8
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5fe768
push dword [esp + 8]
push eax
call fcn.004287f0
add esp, 0xc
jmp 0x54815f
mov dword [esp + 0x44], eax
mov eax, 0x5fe768
push eax
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.00428850
add esp, 0xc
jmp 0x54815f
push 0x7c
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x54815f
push 0x5fe7c8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
mov eax, 0x5fe7e8
jmp 0x5480e5
push 0x7c
push 4
call fcn.0041a8c0
add esp, 8
jmp 0x54815f
push 0x5fe768
push edi
push ecx
call fcn.004287f0
add esp, 0xc
jmp 0x54815f
mov eax, 0x5fe768
mov dword [esp + 0x2c], ecx
push eax
push dword [esp + 0x30]
push dword [esp + 8]
call fcn.00428850
add esp, 0xc
jmp 0x54815f
push 0x5fe7a8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5fe7b8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5fe7a8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5fe7b8
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.004251d0
add esp, 0xc
jmp 0x54815f
push 0x5ff1e4
push ebx
push esi
call fcn.00428790
add esp, 0xc
ud2