Function at 0x10163340
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 0x10163354
pop eax
mov edi, edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xb4], eax
mov ecx, edx
mov edx, 0x10243bd0
push 0xa
mov dword [esp + 0x124], edi
call fcn.101679b0
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, 0x10243bda
mov ecx, edi
push 0xf
call fcn.101679b0
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, 0x10243c21
mov ecx, edi
push 0xd
call fcn.101679b0
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, 0x10243c2e
mov ecx, edi
push 0xf
call fcn.101679b0
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.101679b0
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, 0x10243b61
mov ecx, edi
push 0xb
call fcn.101679b0
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, 0x10243b6c
mov ecx, edi
push 0xe
call fcn.101679b0
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, 0x10243bab
mov ecx, edi
push 0xb
call fcn.101679b0
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, 0x10243bb6
mov ecx, edi
push 0xb
call fcn.101679b0
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, 0x10243bc1
mov ecx, edi
push 0xf
call fcn.101679b0
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, 0x10243c3d
mov ecx, edi
push 0xa
call fcn.101679b0
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, 0x10243c47
mov ecx, edi
push 0x12
call fcn.101679b0
add esp, 4
mov esi, eax
mov ebx, edx
mov edx, 0x10243c68
mov ecx, edi
push 0xc
call fcn.101679b0
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 0x10163c07
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, 0x10243bd0
lea ecx, [esp + 0x320]
push 0xa
call fcn.101679b0
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edx
mov edx, 0x10243bda
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
add esp, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x50], edx
mov edx, 0x10243c21
lea ecx, [esp + 0x320]
push 0xd
call fcn.101679b0
add esp, 4
mov dword [esp + 0x90], eax
mov dword [esp], edx
mov edx, 0x10243c2e
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
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.101679b0
add esp, 4
mov dword [esp + 0x68], eax
mov dword [esp + 4], edx
mov edx, 0x10243b61
lea ecx, [esp + 0x320]
push 0xb
call fcn.101679b0
add esp, 4
mov dword [esp + 0x7c], eax
mov dword [esp + 0x20], edx
mov edx, 0x10243b6c
lea ecx, [esp + 0x320]
push 0xe
call fcn.101679b0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edx
mov edx, 0x10243bab
lea ecx, [esp + 0x320]
push 0xb
call fcn.101679b0
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 8], edx
mov edx, 0x10243bb6
lea ecx, [esp + 0x320]
push 0xb
call fcn.101679b0
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
mov edx, 0x10243bc1
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], edx
mov edx, 0x10243c3d
lea ecx, [esp + 0x320]
push 0xa
call fcn.101679b0
add esp, 4
mov dword [esp + 0x2c], edx
mov ebx, eax
mov edx, 0x10243c47
lea ecx, [esp + 0x320]
push 0x12
call fcn.101679b0
add esp, 4
mov edi, eax
mov esi, edx
mov edx, 0x10243c68
lea ecx, [esp + 0x320]
push 0xc
call fcn.101679b0
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 [0x103564a0]
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 [0x1038a110]
test eax, eax
jne 0x10163b95
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10167287
mov dword [0x1038a110], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10167287
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 0x10163bd5
lock dec dword [eax]
jne 0x10163bd5
lea ecx, [esp + 0x490]
call fcn.10133310
cmp dword [esp + 0x34c], 0
mov dword [esp + 0x490], ebx
je 0x10163bfa
push dword [esp + 0x348]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x90], 0
jmp 0x10163c10
mov al, 1
mov dword [esp + 0x90], eax
mov eax, dword [0x103564a0]
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 [0x1038a110]
test eax, eax
jne 0x10163c5e
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10167256
mov dword [0x1038a110], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10167256
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 0x10164478
lea eax, [esp + 0x188]
mov ecx, 4
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
jmp 0x10163d26
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 0x10163db2
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x188]
lea edx, [esp + 0x124]
push edi
call fcn.1013cbc0
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x10164565
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 0x10163db2
mov edx, dword [esp + 4]
mov esi, ecx
cmp edx, dword [esp + 0x9c]
jne 0x10163d00
lea ecx, [esp + 0x98]
call fcn.10133670
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xa0]
jmp 0x10163d04
mov eax, dword [esp + 0x98]
cmp dword [esp + 4], 0x15
mov dword [esp + 0x4c], eax
jae 0x10163de6
cmp dword [esp + 4], 1
jbe 0x10164478
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
push 1
call fcn.1012f0b0
add esp, 4
jmp 0x10164478
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10163e09
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101672c8
mov dword [0x1038a110], 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 0x101672c8
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10163e54
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101672de
mov dword [0x1038a110], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101672de
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 0x10163eb3
mov edi, 1
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 4]
jae 0x1016445a
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 0x10163f50
mov dword [esp + 0x50], eax
mov eax, dword [esp + 4]
mov esi, eax
sub esi, edx
jb 0x101671ce
cmp eax, dword [esp + 4]
ja 0x101671ce
jae 0x10163f90
cmp dword [esp + 0x50], 0xa
jae 0x10163f90
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 0x10167200
mov eax, dword [esp + 0x50]
mov edx, 1
cmp eax, 2
cmovb eax, edx
mov edx, esi
push eax
call fcn.1012f0b0
add esp, 4
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
je 0x10163fa1
jmp 0x1016400c
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 0x101642c0
cmp eax, 2
jne 0x101642d9
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x10164339
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
jne 0x1016400c
lea eax, [edi + edi]
mov dword [esp + 0x84], eax
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10163fce
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101671e7
mov dword [0x1038a110], eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101671e7
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 [0x1038a110]
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 0x10163ea5
mov dword [esp + 0xc], ebx
jmp 0x10164088
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 0x10163ea0
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 0x101640e0
mov edx, dword [ebx + esi*8 - 0x10]
cmp edx, eax
jbe 0x101640e0
cmp esi, 3
jb 0x101643eb
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 0x101642ab
cmp edi, 4
jb 0x101643f5
add edx, ecx
mov esi, edi
cmp dword [ebx + edi*8 - 0x20], edx
mov edx, dword [esp + 0x20]
jbe 0x101640ec
jmp 0x101643ff
cmp esi, 3
jb 0x101640f0
mov ecx, dword [ebx + esi*8 - 0x18]
lea edx, [esi - 3]
cmp ecx, eax
jb 0x101640f3
lea edx, [esi - 2]
cmp esi, edx
jbe 0x101670c8
lea eax, [edx + 1]
cmp esi, eax
jbe 0x101670da
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 0x10167119
cmp edi, dword [esp + 4]
mov dword [esp + 8], eax
ja 0x10167131
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 0x10164220
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 0x10164206
test ecx, ecx
jle 0x10164206
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 0x10164202
add dword [esp + 0x30], 0xfffffff8
cmp ecx, dword [esp]
ja 0x101641c0
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
mov edi, ebx
mov esi, dword [esp + 0x10]
jmp 0x10164033
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 0x10164030
cmp dword [esp + 0x30], esi
jle 0x10164030
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 0x1016420b
mov dl, al
lea ebx, [ebx + edx*8]
cmp ebx, dword [esp + 0x30]
jb 0x10164270
jmp 0x1016420b
mov edx, dword [esp + 0x20]
mov esi, edi
cmp ecx, eax
jae 0x101640f0
jmp 0x101640f3
cmp eax, 2
jne 0x10164300
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x10163ed9
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 0x10164320
inc edi
cmp eax, edi
jne 0x101642f0
jmp 0x1016431e
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 0x10164320
inc edi
cmp eax, edi
jne 0x10164310
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 0x10163ed9
cmp eax, edx
jb 0x10167237
cmp eax, dword [esp + 4]
ja 0x10167220
mov esi, dword [esp + 0x50]
cmp esi, 2
jae 0x1016435d
mov edx, dword [esp + 0x30]
jmp 0x10163ed9
mov edx, esi
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0xc], ebx
shr edx, 1
cmp esi, 0x18
jb 0x10164408
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 0x10164406
lea esi, [edx - 1]
cmp esi, 0x1fffffff
ja 0x10164406
mov esi, dword [esp + 0x2c]
lea esi, [esi + edi*8]
mov ebx, esi
sub ebx, eax
mov eax, 0
cmp ebx, esi
ja 0x10164408
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 0x101643c0
cmp edx, eax
jne 0x10164408
jmp 0x10164449
mov edi, 2
jmp 0x10163ea5
mov edi, 3
jmp 0x10163ea5
mov edi, esi
jmp 0x10163ea5
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 0x10164430
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
jmp 0x10163ed9
push ebx
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
push dword [esp]
push 0
push dword [0x1038a110]
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.10138910
mov ecx, dword [esp + 0x188]
cmp ecx, 3
jne 0x10164612
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 0x10164535
lea edi, [ecx + 0x150]
dec ebx
call fcn.1012c8f0
mov ecx, edi
jmp 0x10164520
cmp dword [esp + 0xa8], 0
je 0x1016454d
push esi
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x70], 0
je 0x10164565
push dword [esp + 0x6c]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x9c], 0
je 0x10164583
push dword [esp + 0x98]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x94]
lock dec dword [eax]
jne 0x1016459d
mov bl, 1
lea ecx, [esp + 0x94]
call fcn.10133310
mov eax, dword [esp + 0x11c]
mov byte [eax], 0x17
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x101645c5
cmp dword [eax + 0x2c], 0
je 0x101645c5
push dword [eax + 0x28]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xb0], 0
mov eax, dword [ebp + 8]
jne 0x101645ed
cmp dword [eax], 0
je 0x101645ed
cmp dword [eax + 0x2c], 0
je 0x101645ed
push dword [eax + 0x28]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x120]
cmp dword [eax + 0x2c], 0
je 0x1016460a
push dword [eax + 0x28]
push 0
push dword [0x1038a110]
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 0x10164653
lea ecx, [esp + 0x188]
lea edx, [esp + 0x144]
call fcn.10138910
mov ecx, dword [esp + 0x188]
cmp ecx, 3
je 0x10164501
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 0x10165bc4
test ecx, ecx
jne 0x10164630
movd ecx, xmm0
or ecx, 4
cmp ecx, 5
je 0x10164630
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.10139370
add esp, 4
mov eax, dword [esp + 0x188]
xor eax, 2
or eax, dword [esp + 0x18c]
je 0x10164630
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 0x10165b1b
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 0x101647e1
cmp al, 1
ja 0x10165b1b
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 0x1016482c
mov edi, dword [esp]
add ecx, 7
inc ebx
inc edi
jne 0x101647d0
jmp 0x10165b1b
mov eax, dword [esp]
mov ecx, edx
mov dword [esp + 0xe8], ebx
or ecx, esi
not eax
mov dword [esp + 0xec], eax
jne 0x10164904
mov ecx, dword [esp + 4]
lea esi, [esp + 0xd0]
lock dec dword [ecx]
jne 0x1016485e
call fcn.101333c0
mov eax, dword [esp + 0x330]
lea ebx, [esp + 0x1a0]
lea edi, [esp + 0x3c8]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10164630
cmp dword [esp + 0x388], 0
je 0x101648a1
push dword [esp + 0x384]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x101648bf
push dword [esp + 0x390]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x101648dd
push dword [esp + 0x39c]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x10164630
push dword [esp + 0x3a8]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
jmp 0x10164630
mov ecx, dword [esp + 4]
test esi, esi
jne 0x1016491f
lea eax, [edx - 1]
cmp eax, dword [ecx + 0x10]
jae 0x1016491f
imul esi, eax, 0x68
add esi, dword [ecx + 8]
jmp 0x101649cc
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x10165b1b
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 0x1016499e
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 0x10164952
movzx eax, al
test eax, eax
jne 0x101649a2
jmp 0x101649c3
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
sub eax, 1
jb 0x10165b1b
mov ecx, dword [ecx + esi*4 + 0x4d8]
mov dword [esp + 0xc], eax
jmp 0x10164935
mov esi, dword [esp + 4]
sub esi, ebx
add esi, 0xfffffff0
cmp byte [esi + 0x62], 1
jne 0x101649dd
mov dword [esp + 0xf8], 1
push esi
call fcn.1005c040
add esp, 4
test edx, edx
je 0x101652d6
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.101357b0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x10165b1b
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 0x10164ec1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
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 0x10164f81
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x10165b1b
mul dword [esp + 4]
jo 0x10165b1b
sub ecx, eax
jb 0x10165b1b
mov edx, dword [esi + 0x60]
add edx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0x800
jne 0x10164d1f
cmp ecx, 8
jb 0x10165b1b
cmp dword [edx + eax + 4], 0
jne 0x10165b1b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x10165771
cmp dword [esp + 0x20], 0x800
mov ecx, ebx
jne 0x10164d3e
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.101357b0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x10165b1b
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 0x10164ef6
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
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 0x10164eb4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x10165b1b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x10165b1b
test dl, dl
jne 0x10165b1b
cmp ecx, 8
jb 0x10165b1b
mov ecx, dword [esi + 0x60]
add ecx, dword [esp + 0x30]
cmp dword [eax + ecx + 4], 0
jne 0x10165b1b
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 0x10164bd1
jmp 0x1016576d
cmp ecx, 4
jb 0x10165b1b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x10165771
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.101357b0
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x10165b1b
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 0x10164e81
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
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 0x10164eb4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x10165b1b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x10165b1b
test dl, dl
jne 0x10165b1b
cmp ecx, 4
jb 0x10165b1b
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 0x10164d3e
jmp 0x10165771
mov esi, dword [esp + 0x50]
movzx ecx, dx
cmp ecx, 0x11
je 0x10164fc4
cmp ecx, 0x12
mov eax, ebx
je 0x10164f6f
cmp ecx, 0x13
jne 0x101651bd
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x10164f23
cmp ecx, 0x16
jne 0x10164ee4
add ebx, 0x10
jmp 0x10164f86
mov esi, dword [esp + 0x50]
movzx eax, dx
cmp eax, 0x11
je 0x10164fcf
cmp eax, 0x12
je 0x101650ae
cmp eax, 0x13
je 0x10164f23
jmp 0x101652bc
mov eax, ebx
mov dword [esp + 0x24], 0
add eax, 0x10
jmp 0x101652be
movzx eax, dx
cmp eax, 0x11
je 0x10164fc0
cmp eax, 0x12
je 0x1016509f
cmp eax, 0x13
jne 0x101651bb
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
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 0x101652bc
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x101650ae
cmp ecx, 0x16
jne 0x10164fb3
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 0x101652bc
mov dword [esp + 0x24], 0
jmp 0x101652bc
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x10165071
cmp eax, 0xc
jne 0x101652bc
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x10165b1b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x10165b1b
mov edx, esi
sub edx, eax
jb 0x10165b1b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x10165b1b
mov dword [esp + 8], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x101676f8]
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 0x101652bc
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10137970
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x1016518a
cmp eax, 7
je 0x10165159
cmp eax, 0xc
jne 0x101652bc
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x10165b1b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x10165b1b
mov edx, esi
sub edx, eax
jb 0x10165b1b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x10165b1b
mov dword [esp + 0x28], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x101676d8]
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 0x101652bc
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 0x101652bc
mov eax, ebx
mov ecx, dword [esp]
add eax, 0x10
mov dword [esp + 0x24], 1
cmp eax, ecx
jne 0x10164a76
jmp 0x1016576d
mov eax, ebx
mov edx, dword [esp]
cmp eax, edx
jne 0x10164a76
cmp dword [esp + 0x24], 0
jne 0x10165771
jmp 0x1016530e
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 0x10165367
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
xor edi, edi
mov edx, esi
jmp 0x10165334
mov esi, edx
sub edx, edi
jbe 0x10165367
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 0x1016532e
movzx edi, bl
cmp edi, 0xff
jne 0x10165489
mov edi, edx
mov edx, esi
inc edi
jmp 0x1016532e
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x48]
mov eax, ecx
or eax, edx
je 0x101653e4
mov eax, dword [esp + 0x14]
or dword [esp + 0x28], eax
je 0x101653e4
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x130]
cmp dword [esp + 0x78], eax
sbb ecx, dword [esp + 0x170]
jae 0x10165482
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x101653b5
lea ecx, [esp + 0x6c]
call fcn.101337b0
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 0x10165457
xor ebx, ebx
or ecx, edx
je 0x101658d2
mov eax, dword [esp + 0x2c]
or dword [esp + 0x4c], eax
je 0x101658d2
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 0x10165482
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x10165438
lea ecx, [esp + 0x6c]
call fcn.101337b0
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 0x101658d5
xor ebx, ebx
jmp 0x101658d2
mov ebx, dword [esp + 0x30]
lea edi, [edx - 1]
cmp edi, ebx
jae 0x10165afd
inc edx
cmp edx, 1
je 0x101654b6
mov eax, dword [esp + 0x18]
lea esi, [edx - 1]
cmp dword [ecx + edx*8 - 0x10], eax
mov edx, esi
je 0x10165499
cmp ebx, esi
jae 0x101654b8
jmp 0x10167320
xor esi, esi
cmp esi, ebx
jne 0x101654c3
xor ebx, ebx
jmp 0x101658d5
lea eax, [ecx + ebx*8]
lea esi, [ecx + esi*8]
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
jmp 0x101654e8
mov esi, dword [esp + 8]
add esi, 8
cmp esi, dword [esp + 0x48]
je 0x10165af4
mov eax, dword [esp + 0x18]
cmp dword [esi], eax
jne 0x10165af4
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x14]
sub ecx, eax
jb 0x10165b1b
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.1013cbc0
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x10165b1b
mov eax, dword [esp + 0x194]
mov dword [esp + 8], esi
test eax, eax
je 0x101654d7
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 0x101654d7
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x50]
cmp ecx, 8
ja 0x10165b1b
mov edx, dword [ecx*4 + 0x10167718]
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 0x10165b1b
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.1013cf10
mov eax, dword [esp + 0xb8]
movdqu xmm1, xmmword [esp + 0xc0]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x101658bf
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 0x10165818
mov edx, dword [esp + 0x74]
movdqa xmmword [esp + 0x30], xmm1
cmp edx, dword [esp + 0x70]
jne 0x10165887
lea ecx, [esp + 0x6c]
call fcn.101337b0
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 0x10165818
cmp eax, 2
jne 0x101658d2
movd eax, xmm1
cmp al, 0x4b
mov bl, ah
jne 0x10165b1b
and bl, 1
test bl, 1
lea ebx, [esp + 0x1a0]
lea ecx, [esp + 0x330]
mov dword [esp + 0xb8], 2
jne 0x10165958
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10165958
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.10143a20
cmp dword [esp + 0xb8], 0
je 0x10165a6b
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 0x10165a08
lea ecx, [esp + 0xa4]
call fcn.10133e00
lea edi, [esp + 0x3c8]
mov edx, dword [esp + 0xac]
jmp 0x10165a0f
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.10138910
mov ecx, dword [esp + 0x188]
lea esi, [esp + 0xd0]
cmp ecx, 3
jne 0x10164653
jmp 0x10164501
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x10165958
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x74]
shl eax, 3
lea edi, [eax + eax*2]
add esi, 8
jmp 0x10165ad5
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 0x10165958
movdqu xmm0, xmmword [esi]
cmp edx, dword [esp + 0x70]
mov dword [esp + 0x30], edi
movdqa xmmword [esp + 0x50], xmm0
jne 0x10165a94
lea ecx, [esp + 0x6c]
call fcn.101337b0
jmp 0x10165a90
mov ebx, dword [esp + 0x24]
jmp 0x101658d5
xor esi, esi
test edx, edx
je 0x101654b8
push 0x1034a564
push ebx
push edi
call fcn.10026930
add esp, 0xc
jmp 0x1016732f
mov ecx, dword [esp + 0x410]
lock dec dword [ecx]
jne 0x10165b2c
call fcn.101333c0
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10164501
cmp dword [esp + 0x388], 0
je 0x10165b61
push dword [esp + 0x384]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x10165b7f
push dword [esp + 0x390]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x10165b9d
push dword [esp + 0x39c]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x10164501
push dword [esp + 0x3a8]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
jmp 0x10164501
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
cmp esi, 0x15
mov dword [esp + 8], esi
jae 0x10165bf1
cmp esi, 1
jbe 0x10166333
mov edx, esi
mov ecx, ebx
push 1
call fcn.1012ef40
add esp, 4
jmp 0x1016633b
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10165c14
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101672f4
mov dword [0x1038a110], 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 0x101672f4
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10165c57
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x1016730a
mov dword [0x1038a110], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x1016730a
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 0x10165ca1
mov edx, 1
mov eax, dword [esp + 0x2c]
cmp eax, esi
jae 0x1016630c
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 0x10165dc0
mov ecx, ebx
mov esi, ebx
mov eax, dword [esp]
mov ebx, dword [esp + 0x14]
mov edi, ecx
sub edi, eax
jb 0x10167207
cmp ecx, esi
ja 0x10167207
jae 0x10165e20
cmp dword [esp + 0x30], 0xa
jae 0x10165e20
lea edi, [eax + 0xa]
cmp edi, esi
cmovae edi, esi
mov dword [esp + 0x2c], edi
sub edi, eax
jb 0x10167280
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.1012ef40
add esp, 4
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp edx, dword [esp + 0x44]
jne 0x10165e2e
lea eax, [edx + edx]
mov dword [esp + 0x44], eax
mov eax, dword [0x103564a0]
movzx eax, byte [eax]
mov eax, dword [0x1038a110]
test eax, eax
jne 0x10165d6d
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10167267
mov dword [0x1038a110], 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 0x10167267
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 [0x1038a110]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
jmp 0x10165e32
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 0x10166140
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x10166162
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x101661fd
mov dword [esp + 0x2c], ecx
cmp edx, dword [esp + 0x44]
je 0x10165d3f
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 0x10165c95
mov dword [esp + 0x18], edi
jmp 0x10165eaf
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 0x10165c90
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 0x10165f10
mov edx, dword [edi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x10165f10
cmp ecx, 3
jb 0x101662ef
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 0x1016611d
mov esi, dword [esp + 8]
cmp ebx, 4
jb 0x101662f9
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jbe 0x10165f1c
jmp 0x10166303
cmp ecx, 3
jb 0x10165f24
lea edx, [ecx - 3]
mov ecx, dword [edi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jb 0x10165f27
lea edx, [ecx - 2]
cmp ecx, edx
jbe 0x1016714c
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x1016715e
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 0x101671a0
cmp edi, dword [esp + 8]
ja 0x101671b7
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 0x10166060
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 0x10165e50
cmp dword [esp + 0x28], 0
jle 0x10165e50
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 0x10165e50
add edi, 0xffffffe0
cmp ebx, dword [esp + 0x50]
ja 0x10165ff0
jmp 0x10165e50
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 0x10166110
cmp dword [esp], eax
jle 0x10166110
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 0x10166114
mov edi, dword [esp]
movzx ecx, dl
shl ecx, 5
add esi, ecx
cmp esi, edi
jb 0x101660a0
jmp 0x10166114
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x30]
jmp 0x10165e54
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jae 0x10165f24
jmp 0x10165f27
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x1016619d
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x10165cd8
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 0x101661cf
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x10166180
jmp 0x101661cb
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 0x101661cf
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x101661b0
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 0x10165cd8
cmp ecx, eax
jb 0x101672ac
mov edi, esi
cmp ecx, esi
mov esi, dword [esp + 0x30]
ja 0x10167298
cmp esi, 2
jae 0x1016621f
mov esi, edi
jmp 0x10165cd8
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 0x10166240
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov edx, edi
jmp 0x10165cd8
mov edx, 2
jmp 0x10165c95
mov edx, 3
jmp 0x10165c95
mov edx, dword [esp + 0x20]
jmp 0x10165c95
push edi
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x50]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x10166385
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 0x10166350
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
jmp 0x10166387
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 0x101663ca
push dword [esp + 0x98]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
je 0x10164583
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 0x101664d9
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.10138910
mov eax, dword [esp + 0x188]
cmp eax, 3
jne 0x101664ff
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.1012cdc0
cmp bl, 0x4b
mov ebx, dword [esp + 0x14]
je 0x10166717
mov ecx, dword [esp + 4]
inc edi
nop word cs:[eax + eax]
cmp edi, 1
je 0x101666e7
lea esi, [ecx + 0x150]
dec edi
call fcn.1012c8f0
mov ecx, esi
jmp 0x101664c0
mov dword [esp + 0x150], 8
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
jmp 0x10166737
add dword [esp + 0x18], 8
mov dword [esp], 0
mov dword [esp + 0x10], 8
jmp 0x10166550
mov ebx, dword [esp + 0x14]
cmp eax, 2
je 0x10166710
lea ecx, [esp + 0x188]
lea edx, [esp + 0x2d8]
call fcn.10138910
mov eax, dword [esp + 0x188]
cmp eax, 3
je 0x10166474
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 0x10166520
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.10139370
add esp, 4
mov eax, dword [esp + 0x320]
xor eax, 2
or eax, dword [esp + 0x324]
je 0x1016652d
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 0x101666af
lea ecx, [esp + 0xe8]
call fcn.10133cc0
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xf0]
jmp 0x101666b3
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 0x1016652d
cmp dword [esp + 0x20], 0
je 0x101666ff
push dword [esp + 4]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1c], 0
je 0x10164583
push ebx
jmp 0x10164576
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 0x1016678b
mov esi, dword [esp + 8]
test esi, esi
je 0x10166778
shl esi, 5
push esi
push ebx
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x1016678b
push esi
push 8
call fcn.1001a7e0
add esp, 8
jmp 0x1016732f
push ebx
push 0
push dword [0x1038a110]
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 0x101667ee
mov eax, dword [esp + 0x188]
test ebx, ebx
je 0x101667f7
imul esi, ebx, 0x150
push esi
push eax
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapReAlloc
mov edi, eax
test eax, eax
jne 0x1016680a
push esi
push 8
call fcn.1001a7e0
add esp, 8
jmp 0x1016732f
mov edi, dword [esp + 0x188]
jmp 0x1016680a
push eax
push 0
push dword [0x1038a110]
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 0x1016686e
mov eax, dword [esp + 0x188]
test esi, esi
je 0x10166877
imul ecx, esi, 0x110
mov dword [esp + 0x50], ecx
push ecx
push eax
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x1016688a
push dword [esp + 0x50]
push 8
call fcn.1001a7e0
add esp, 8
jmp 0x1016732f
mov eax, dword [esp + 0x188]
jmp 0x1016688a
push eax
push 0
push dword [0x1038a110]
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 0x10166aa4
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, 0x10243b7a
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
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.1013bb30
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
je 0x10166a69
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, 0x10243c59
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
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.1013bb30
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
jne 0x10166aab
mov eax, dword [esp + 0x11c]
cmp dword [esp + 0x34c], 0
mov byte [eax], 0x17
je 0x10166a91
push dword [esp + 0x348]
push 0
push dword [0x1038a110]
call sub.KERNEL32.dll_HeapFree
xor ebx, ebx
lea ecx, [esp + 0x304]
call fcn.1012c800
jmp 0x101645c5
mov dl, 0x16
jmp 0x10166e7b
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, 0x10243c74
lea ecx, [esp + 0x320]
push 0x11
call fcn.101679b0
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, 0x10243c85
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
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, 0x10243c94
lea ecx, [esp + 0x320]
push 0xf
call fcn.101679b0
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, 0x10243ce7
lea ecx, [esp + 0x320]
push 0xe
call fcn.101679b0
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, 0x10243cf5
lea ecx, [esp + 0x320]
push 0x16
call fcn.101679b0
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, 0x10243ca3
lea ecx, [esp + 0x320]
push 0xe
call fcn.101679b0
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, 0x10243cb1
lea ecx, [esp + 0x320]
push 0x13
call fcn.101679b0
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, 0x10243cd4
lea ecx, [esp + 0x320]
push 0x13
call fcn.101679b0
add esp, 4
test eax, eax
mov edi, edx
cmove edi, eax
cmovne esi, eax
mov edx, 0x10243d0b
lea ecx, [esp + 0x320]
push 0x10
call fcn.101679b0
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 0x10166e50
push dword [esp + 0x348]
push 0
push dword [0x1038a110]
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 0x1016460a
mov dword [esp + 0x188], 0x1034984c
mov eax, 0x10349af8
jmp 0x101670ea
mov eax, 0x10349b08
mov dword [esp + 0x188], 0x1034984c
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.10026810
add esp, 8
jmp 0x1016732f
push 0x10349b18
push edi
push ecx
mov ebx, dword [esp + 0x18]
call fcn.1002a1f0
add esp, 0xc
jmp 0x1016732f
push 0x10349b18
push dword [esp + 8]
push edi
mov ebx, dword [esp + 0x18]
call fcn.1002a190
add esp, 0xc
jmp 0x1016732f
mov dword [esp + 0x188], 0x1034984c
mov eax, 0x10349af8
jmp 0x1016716e
mov eax, 0x10349b08
mov dword [esp + 0x188], 0x1034984c
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.10026810
add esp, 8
jmp 0x1016732f
push 0x10349b18
push edi
push dword [esp + 0x18]
call fcn.1002a1f0
add esp, 0xc
jmp 0x1016732f
push 0x10349b18
push dword [esp + 0xc]
push edi
call fcn.1002a190
add esp, 0xc
jmp 0x1016732f
push 0x10349ba4
push 0x2c
push 0x10349b78
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x10349b48
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
mov eax, 0x10349b68
jmp 0x10167240
push 0x10349ba4
push 0x2c
push 0x10349b78
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x10349ae8
push dword [esp + 8]
push eax
call fcn.1002a190
add esp, 0xc
jmp 0x1016732f
mov dword [esp + 0x44], eax
mov eax, 0x10349ae8
push eax
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.1002a1f0
add esp, 0xc
jmp 0x1016732f
push 0x7c
push 4
call fcn.1001a7e0
add esp, 8
jmp 0x1016732f
push 0x10349b48
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
mov eax, 0x10349b68
jmp 0x101672b5
push 0x7c
push 4
call fcn.1001a7e0
add esp, 8
jmp 0x1016732f
push 0x10349ae8
push edi
push ecx
call fcn.1002a190
add esp, 0xc
jmp 0x1016732f
mov eax, 0x10349ae8
mov dword [esp + 0x2c], ecx
push eax
push dword [esp + 0x30]
push dword [esp + 8]
call fcn.1002a1f0
add esp, 0xc
jmp 0x1016732f
push 0x10349b28
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x10349b38
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x10349b28
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x10349b38
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10026890
add esp, 0xc
jmp 0x1016732f
push 0x1034a574
push ebx
push esi
call fcn.1002a130
add esp, 0xc
ud2