Function at 0x1017fb40
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 0x1017fb54
pop eax
mov edi, edx
mov dword [esp + 0x11c], ecx
mov dword [esp + 0xb4], eax
mov ecx, edx
mov edx, 0x10330830
push 0xa
mov dword [esp + 0x124], edi
call fcn.101841b0
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, 0x1033083a
mov ecx, edi
push 0xf
call fcn.101841b0
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, 0x10330881
mov ecx, edi
push 0xd
call fcn.101841b0
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, 0x1033088e
mov ecx, edi
push 0xf
call fcn.101841b0
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.101841b0
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, 0x103307c1
mov ecx, edi
push 0xb
call fcn.101841b0
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, 0x103307cc
mov ecx, edi
push 0xe
call fcn.101841b0
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, 0x1033080b
mov ecx, edi
push 0xb
call fcn.101841b0
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, 0x10330816
mov ecx, edi
push 0xb
call fcn.101841b0
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, 0x10330821
mov ecx, edi
push 0xf
call fcn.101841b0
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, 0x1033089d
mov ecx, edi
push 0xa
call fcn.101841b0
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, 0x103308a7
mov ecx, edi
push 0x12
call fcn.101841b0
add esp, 4
mov esi, eax
mov ebx, edx
mov edx, 0x103308c8
mov ecx, edi
push 0xc
call fcn.101841b0
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 0x10180407
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, 0x10330830
lea ecx, [esp + 0x320]
push 0xa
call fcn.101841b0
add esp, 4
mov dword [esp + 0x44], eax
mov dword [esp + 0x30], edx
mov edx, 0x1033083a
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
add esp, 4
mov dword [esp + 0x84], eax
mov dword [esp + 0x50], edx
mov edx, 0x10330881
lea ecx, [esp + 0x320]
push 0xd
call fcn.101841b0
add esp, 4
mov dword [esp + 0x90], eax
mov dword [esp], edx
mov edx, 0x1033088e
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
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.101841b0
add esp, 4
mov dword [esp + 0x68], eax
mov dword [esp + 4], edx
mov edx, 0x103307c1
lea ecx, [esp + 0x320]
push 0xb
call fcn.101841b0
add esp, 4
mov dword [esp + 0x7c], eax
mov dword [esp + 0x20], edx
mov edx, 0x103307cc
lea ecx, [esp + 0x320]
push 0xe
call fcn.101841b0
add esp, 4
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], edx
mov edx, 0x1033080b
lea ecx, [esp + 0x320]
push 0xb
call fcn.101841b0
add esp, 4
mov dword [esp + 0x48], eax
mov dword [esp + 8], edx
mov edx, 0x10330816
lea ecx, [esp + 0x320]
push 0xb
call fcn.101841b0
add esp, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], edx
mov edx, 0x10330821
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
add esp, 4
mov dword [esp + 0x4c], eax
mov dword [esp + 0x14], edx
mov edx, 0x1033089d
lea ecx, [esp + 0x320]
push 0xa
call fcn.101841b0
add esp, 4
mov dword [esp + 0x2c], edx
mov ebx, eax
mov edx, 0x103308a7
lea ecx, [esp + 0x320]
push 0x12
call fcn.101841b0
add esp, 4
mov edi, eax
mov esi, edx
mov edx, 0x103308c8
lea ecx, [esp + 0x320]
push 0xc
call fcn.101841b0
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 [0x1044f00c]
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 [0x1048f0f8]
test eax, eax
jne 0x10180395
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183a87
mov dword [0x1048f0f8], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10183a87
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 0x101803d5
lock dec dword [eax]
jne 0x101803d5
lea ecx, [esp + 0x490]
call fcn.1014f660
cmp dword [esp + 0x34c], 0
mov dword [esp + 0x490], ebx
je 0x101803fa
push dword [esp + 0x348]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov dword [esp + 0x90], 0
jmp 0x10180410
mov al, 1
mov dword [esp + 0x90], eax
mov eax, dword [0x1044f00c]
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 [0x1048f0f8]
test eax, eax
jne 0x1018045e
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183a56
mov dword [0x1048f0f8], eax
push 0x7c
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10183a56
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 0x10180c78
lea eax, [esp + 0x188]
mov ecx, 4
xor edi, edi
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
jmp 0x10180526
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 0x101805b2
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x188]
lea edx, [esp + 0x124]
push edi
call fcn.10158f10
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x10180d65
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 0x101805b2
mov edx, dword [esp + 4]
mov esi, ecx
cmp edx, dword [esp + 0x9c]
jne 0x10180500
lea ecx, [esp + 0x98]
call fcn.1014f9c0
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xa0]
jmp 0x10180504
mov eax, dword [esp + 0x98]
cmp dword [esp + 4], 0x15
mov dword [esp + 0x4c], eax
jae 0x101805e6
cmp dword [esp + 4], 1
jbe 0x10180c78
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x4c]
push 1
call fcn.1014b400
add esp, 4
jmp 0x10180c78
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10180609
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183ac8
mov dword [0x1048f0f8], 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 0x10183ac8
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10180654
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183ade
mov dword [0x1048f0f8], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10183ade
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 0x101806b3
mov edi, 1
mov edx, dword [esp + 0x44]
cmp edx, dword [esp + 4]
jae 0x10180c5a
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 0x10180750
mov dword [esp + 0x50], eax
mov eax, dword [esp + 4]
mov esi, eax
sub esi, edx
jb 0x101839ce
cmp eax, dword [esp + 4]
ja 0x101839ce
jae 0x10180790
cmp dword [esp + 0x50], 0xa
jae 0x10180790
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 0x10183a00
mov eax, dword [esp + 0x50]
mov edx, 1
cmp eax, 2
cmovb eax, edx
mov edx, esi
push eax
call fcn.1014b400
add esp, 4
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
je 0x101807a1
jmp 0x1018080c
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 0x10180ac0
cmp eax, 2
jne 0x10180ad9
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x10180b39
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x84]
jne 0x1018080c
lea eax, [edi + edi]
mov dword [esp + 0x84], eax
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x101807ce
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x101839e7
mov dword [0x1048f0f8], eax
mov ecx, edi
shl ecx, 4
push ecx
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x101839e7
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 [0x1048f0f8]
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 0x101806a5
mov dword [esp + 0xc], ebx
jmp 0x10180888
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 0x101806a0
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 0x101808e0
mov edx, dword [ebx + esi*8 - 0x10]
cmp edx, eax
jbe 0x101808e0
cmp esi, 3
jb 0x10180beb
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 0x10180aab
cmp edi, 4
jb 0x10180bf5
add edx, ecx
mov esi, edi
cmp dword [ebx + edi*8 - 0x20], edx
mov edx, dword [esp + 0x20]
jbe 0x101808ec
jmp 0x10180bff
cmp esi, 3
jb 0x101808f0
mov ecx, dword [ebx + esi*8 - 0x18]
lea edx, [esi - 3]
cmp ecx, eax
jb 0x101808f3
lea edx, [esi - 2]
cmp esi, edx
jbe 0x101838c8
lea eax, [edx + 1]
cmp esi, eax
jbe 0x101838da
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 0x10183919
cmp edi, dword [esp + 4]
mov dword [esp + 8], eax
ja 0x10183931
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 0x10180a20
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 0x10180a06
test ecx, ecx
jle 0x10180a06
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 0x10180a02
add dword [esp + 0x30], 0xfffffff8
cmp ecx, dword [esp]
ja 0x101809c0
mov dword [esp + 0x50], ecx
mov ecx, dword [esp]
mov edi, ebx
mov esi, dword [esp + 0x10]
jmp 0x10180833
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 0x10180830
cmp dword [esp + 0x30], esi
jle 0x10180830
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 0x10180a0b
mov dl, al
lea ebx, [ebx + edx*8]
cmp ebx, dword [esp + 0x30]
jb 0x10180a70
jmp 0x10180a0b
mov edx, dword [esp + 0x20]
mov esi, edi
cmp ecx, eax
jae 0x101808f0
jmp 0x101808f3
cmp eax, 2
jne 0x10180b00
mov ecx, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x50], 2
jmp 0x101806d9
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 0x10180b20
inc edi
cmp eax, edi
jne 0x10180af0
jmp 0x10180b1e
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 0x10180b20
inc edi
cmp eax, edi
jne 0x10180b10
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 0x101806d9
cmp eax, edx
jb 0x10183a37
cmp eax, dword [esp + 4]
ja 0x10183a20
mov esi, dword [esp + 0x50]
cmp esi, 2
jae 0x10180b5d
mov edx, dword [esp + 0x30]
jmp 0x101806d9
mov edx, esi
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0xc], ebx
shr edx, 1
cmp esi, 0x18
jb 0x10180c08
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 0x10180c06
lea esi, [edx - 1]
cmp esi, 0x1fffffff
ja 0x10180c06
mov esi, dword [esp + 0x2c]
lea esi, [esi + edi*8]
mov ebx, esi
sub ebx, eax
mov eax, 0
cmp ebx, esi
ja 0x10180c08
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 0x10180bc0
cmp edx, eax
jne 0x10180c08
jmp 0x10180c49
mov edi, 2
jmp 0x101806a5
mov edi, 3
jmp 0x101806a5
mov edi, esi
jmp 0x101806a5
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 0x10180c30
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x30]
jmp 0x101806d9
push ebx
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
push dword [esp]
push 0
push dword [0x1048f0f8]
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.10154c60
mov ecx, dword [esp + 0x188]
cmp ecx, 3
jne 0x10180e12
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 0x10180d35
lea edi, [ecx + 0x150]
dec ebx
call fcn.10148c90
mov ecx, edi
jmp 0x10180d20
cmp dword [esp + 0xa8], 0
je 0x10180d4d
push esi
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x70], 0
je 0x10180d65
push dword [esp + 0x6c]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x9c], 0
je 0x10180d83
push dword [esp + 0x98]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x94]
lock dec dword [eax]
jne 0x10180d9d
mov bl, 1
lea ecx, [esp + 0x94]
call fcn.1014f660
mov eax, dword [esp + 0x11c]
mov byte [eax], 0x17
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x10180dc5
cmp dword [eax + 0x2c], 0
je 0x10180dc5
push dword [eax + 0x28]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0xb0], 0
mov eax, dword [ebp + 8]
jne 0x10180ded
cmp dword [eax], 0
je 0x10180ded
cmp dword [eax + 0x2c], 0
je 0x10180ded
push dword [eax + 0x28]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x120]
cmp dword [eax + 0x2c], 0
je 0x10180e0a
push dword [eax + 0x28]
push 0
push dword [0x1048f0f8]
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 0x10180e53
lea ecx, [esp + 0x188]
lea edx, [esp + 0x144]
call fcn.10154c60
mov ecx, dword [esp + 0x188]
cmp ecx, 3
je 0x10180d01
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 0x101823c4
test ecx, ecx
jne 0x10180e30
movd ecx, xmm0
or ecx, 4
cmp ecx, 5
je 0x10180e30
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.101556c0
add esp, 4
mov eax, dword [esp + 0x188]
xor eax, 2
or eax, dword [esp + 0x18c]
je 0x10180e30
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 0x1018231b
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 0x10180fe1
cmp al, 1
ja 0x1018231b
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 0x1018102c
mov edi, dword [esp]
add ecx, 7
inc ebx
inc edi
jne 0x10180fd0
jmp 0x1018231b
mov eax, dword [esp]
mov ecx, edx
mov dword [esp + 0xe8], ebx
or ecx, esi
not eax
mov dword [esp + 0xec], eax
jne 0x10181104
mov ecx, dword [esp + 4]
lea esi, [esp + 0xd0]
lock dec dword [ecx]
jne 0x1018105e
call fcn.1014f710
mov eax, dword [esp + 0x330]
lea ebx, [esp + 0x1a0]
lea edi, [esp + 0x3c8]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10180e30
cmp dword [esp + 0x388], 0
je 0x101810a1
push dword [esp + 0x384]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x101810bf
push dword [esp + 0x390]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x101810dd
push dword [esp + 0x39c]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x10180e30
push dword [esp + 0x3a8]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
jmp 0x10180e30
mov ecx, dword [esp + 4]
test esi, esi
jne 0x1018111f
lea eax, [edx - 1]
cmp eax, dword [ecx + 0x10]
jae 0x1018111f
imul esi, eax, 0x68
add esi, dword [ecx + 8]
jmp 0x101811cc
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x1018231b
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 0x1018119e
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 0x10181152
movzx eax, al
test eax, eax
jne 0x101811a2
jmp 0x101811c3
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 4]
sub eax, 1
jb 0x1018231b
mov ecx, dword [ecx + esi*4 + 0x4d8]
mov dword [esp + 0xc], eax
jmp 0x10181135
mov esi, dword [esp + 4]
sub esi, ebx
add esi, 0xfffffff0
cmp byte [esi + 0x62], 1
jne 0x101811dd
mov dword [esp + 0xf8], 1
push esi
call fcn.10068970
add esp, 4
test edx, edx
je 0x10181ad6
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.10151b00
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x1018231b
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 0x101816c1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
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 0x10181781
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x1018231b
mul dword [esp + 4]
jo 0x1018231b
sub ecx, eax
jb 0x1018231b
mov edx, dword [esi + 0x60]
add edx, dword [esp + 0x30]
cmp dword [esp + 0x20], 0x800
jne 0x1018151f
cmp ecx, 8
jb 0x1018231b
cmp dword [edx + eax + 4], 0
jne 0x1018231b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x10181f71
cmp dword [esp + 0x20], 0x800
mov ecx, ebx
jne 0x1018153e
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.10151b00
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x1018231b
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 0x101816f6
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
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 0x101816b4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x1018231b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x1018231b
test dl, dl
jne 0x1018231b
cmp ecx, 8
jb 0x1018231b
mov ecx, dword [esi + 0x60]
add ecx, dword [esp + 0x30]
cmp dword [eax + ecx + 4], 0
jne 0x1018231b
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 0x101813d1
jmp 0x10181f6d
cmp ecx, 4
jb 0x1018231b
mov eax, dword [edx + eax]
add eax, dword [esp + 0x30]
cmp ebx, dword [esp]
mov dword [esp + 0x1c], eax
je 0x10181f71
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.10151b00
add esp, 8
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x18c]
mov edx, eax
xor edx, 0x2e
or edx, ecx
je 0x1018231b
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 0x10181681
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
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 0x101816b4
mov ecx, dword [esi + 0x64]
sub ecx, dword [esp + 0x30]
jb 0x1018231b
mul dword [esp + 4]
seto dh
sub ecx, eax
setb dl
test dh, dh
jne 0x1018231b
test dl, dl
jne 0x1018231b
cmp ecx, 4
jb 0x1018231b
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 0x1018153e
jmp 0x10181f71
mov esi, dword [esp + 0x50]
movzx ecx, dx
cmp ecx, 0x11
je 0x101817c4
cmp ecx, 0x12
mov eax, ebx
je 0x1018176f
cmp ecx, 0x13
jne 0x101819bd
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x10181723
cmp ecx, 0x16
jne 0x101816e4
add ebx, 0x10
jmp 0x10181786
mov esi, dword [esp + 0x50]
movzx eax, dx
cmp eax, 0x11
je 0x101817cf
cmp eax, 0x12
je 0x101818ae
cmp eax, 0x13
je 0x10181723
jmp 0x10181abc
mov eax, ebx
mov dword [esp + 0x24], 0
add eax, 0x10
jmp 0x10181abe
movzx eax, dx
cmp eax, 0x11
je 0x101817c0
cmp eax, 0x12
je 0x1018189f
cmp eax, 0x13
jne 0x101819bb
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
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 0x10181abc
add eax, 0x10
mov dword [esp + 0x24], 1
mov ebx, eax
jmp 0x101818ae
cmp ecx, 0x16
jne 0x101817b3
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 0x10181abc
mov dword [esp + 0x24], 0
jmp 0x10181abc
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x10181871
cmp eax, 0xc
jne 0x10181abc
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x1018231b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x1018231b
mov edx, esi
sub edx, eax
jb 0x1018231b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x1018231b
mov dword [esp + 8], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x10183ef8]
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 0x10181abc
mov esi, dword [esp + 0x50]
add ebx, 0x10
mov dword [esp + 0x24], 1
lea ecx, [esp + 0x188]
lea edx, [esp + 0xb8]
call fcn.10153cc0
mov eax, dword [esp + 0x188]
test al, 0x3f
je 0x1018198a
cmp eax, 7
je 0x10181959
cmp eax, 0xc
jne 0x10181abc
mov ecx, dword [esp + 0x418]
mov esi, dword [esi + 0xc]
mov dword [esp + 0x80], edi
sub esi, ecx
jb 0x1018231b
mov eax, dword [esp + 0x7c]
mul dword [esp + 0x190]
jo 0x1018231b
mov edx, esi
sub edx, eax
jb 0x1018231b
movzx edi, byte [esp + 0x44]
dec edi
cmp edi, 7
ja 0x1018231b
mov dword [esp + 0x28], eax
mov eax, ecx
mov ecx, dword [esp + 0x50]
mov edi, dword [edi*4 + 0x10183ed8]
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 0x10181abc
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 0x10181abc
mov eax, ebx
mov ecx, dword [esp]
add eax, 0x10
mov dword [esp + 0x24], 1
cmp eax, ecx
jne 0x10181276
jmp 0x10181f6d
mov eax, ebx
mov edx, dword [esp]
cmp eax, edx
jne 0x10181276
cmp dword [esp + 0x24], 0
jne 0x10181f71
jmp 0x10181b0e
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 0x10181b67
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
xor edi, edi
mov edx, esi
jmp 0x10181b34
mov esi, edx
sub edx, edi
jbe 0x10181b67
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 0x10181b2e
movzx edi, bl
cmp edi, 0xff
jne 0x10181c89
mov edi, edx
mov edx, esi
inc edi
jmp 0x10181b2e
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x48]
mov eax, ecx
or eax, edx
je 0x10181be4
mov eax, dword [esp + 0x14]
or dword [esp + 0x28], eax
je 0x10181be4
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x130]
cmp dword [esp + 0x78], eax
sbb ecx, dword [esp + 0x170]
jae 0x10181c82
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x10181bb5
lea ecx, [esp + 0x6c]
call fcn.1014fb00
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 0x10181c57
xor ebx, ebx
or ecx, edx
je 0x101820d2
mov eax, dword [esp + 0x2c]
or dword [esp + 0x4c], eax
je 0x101820d2
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 0x10181c82
mov edx, dword [esp + 0x74]
cmp edx, dword [esp + 0x70]
jne 0x10181c38
lea ecx, [esp + 0x6c]
call fcn.1014fb00
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 0x101820d5
xor ebx, ebx
jmp 0x101820d2
mov ebx, dword [esp + 0x30]
lea edi, [edx - 1]
cmp edi, ebx
jae 0x101822fd
inc edx
cmp edx, 1
je 0x10181cb6
mov eax, dword [esp + 0x18]
lea esi, [edx - 1]
cmp dword [ecx + edx*8 - 0x10], eax
mov edx, esi
je 0x10181c99
cmp ebx, esi
jae 0x10181cb8
jmp 0x10183b20
xor esi, esi
cmp esi, ebx
jne 0x10181cc3
xor ebx, ebx
jmp 0x101820d5
lea eax, [ecx + ebx*8]
lea esi, [ecx + esi*8]
mov dword [esp + 0x24], 0
mov dword [esp + 0x48], eax
jmp 0x10181ce8
mov esi, dword [esp + 8]
add esi, 8
cmp esi, dword [esp + 0x48]
je 0x101822f4
mov eax, dword [esp + 0x18]
cmp dword [esi], eax
jne 0x101822f4
mov edx, dword [esp + 0x8c]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x14]
sub ecx, eax
jb 0x1018231b
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.10158f10
add esp, 4
cmp dword [esp + 0x188], 0
jne 0x1018231b
mov eax, dword [esp + 0x194]
mov dword [esp + 8], esi
test eax, eax
je 0x10181cd7
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 0x10181cd7
mov ecx, dword [esp + 4]
mov edi, dword [esp + 0x50]
cmp ecx, 8
ja 0x1018231b
mov edx, dword [ecx*4 + 0x10183f18]
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 0x1018231b
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.10159260
mov eax, dword [esp + 0xb8]
movdqu xmm1, xmmword [esp + 0xc0]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x101820bf
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 0x10182018
mov edx, dword [esp + 0x74]
movdqa xmmword [esp + 0x30], xmm1
cmp edx, dword [esp + 0x70]
jne 0x10182087
lea ecx, [esp + 0x6c]
call fcn.1014fb00
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 0x10182018
cmp eax, 2
jne 0x101820d2
movd eax, xmm1
cmp al, 0x4b
mov bl, ah
jne 0x1018231b
and bl, 1
test bl, 1
lea ebx, [esp + 0x1a0]
lea ecx, [esp + 0x330]
mov dword [esp + 0xb8], 2
jne 0x10182158
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10182158
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.1015fd70
cmp dword [esp + 0xb8], 0
je 0x1018226b
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 0x10182208
lea ecx, [esp + 0xa4]
call fcn.10150150
lea edi, [esp + 0x3c8]
mov edx, dword [esp + 0xac]
jmp 0x1018220f
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.10154c60
mov ecx, dword [esp + 0x188]
lea esi, [esp + 0xd0]
cmp ecx, 3
jne 0x10180e53
jmp 0x10180d01
mov eax, dword [esp + 0xc8]
test eax, eax
je 0x10182158
mov esi, dword [esp + 0xc4]
mov edx, dword [esp + 0x74]
shl eax, 3
lea edi, [eax + eax*2]
add esi, 8
jmp 0x101822d5
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 0x10182158
movdqu xmm0, xmmword [esi]
cmp edx, dword [esp + 0x70]
mov dword [esp + 0x30], edi
movdqa xmmword [esp + 0x50], xmm0
jne 0x10182294
lea ecx, [esp + 0x6c]
call fcn.1014fb00
jmp 0x10182290
mov ebx, dword [esp + 0x24]
jmp 0x101820d5
xor esi, esi
test edx, edx
je 0x10181cb8
push 0x10438eb4
push ebx
push edi
call fcn.100273d0
add esp, 0xc
jmp 0x10183b2f
mov ecx, dword [esp + 0x410]
lock dec dword [ecx]
jne 0x1018232c
call fcn.1014f710
mov eax, dword [esp + 0x330]
xor eax, 0x2f
or eax, dword [esp + 0x334]
je 0x10180d01
cmp dword [esp + 0x388], 0
je 0x10182361
push dword [esp + 0x384]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x394], 0
je 0x1018237f
push dword [esp + 0x390]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3a0], 0
je 0x1018239d
push dword [esp + 0x39c]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x3ac], 0
je 0x10180d01
push dword [esp + 0x3a8]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
jmp 0x10180d01
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0x6c]
cmp esi, 0x15
mov dword [esp + 8], esi
jae 0x101823f1
cmp esi, 1
jbe 0x10182b33
mov edx, esi
mov ecx, ebx
push 1
call fcn.1014b290
add esp, 4
jmp 0x10182b3b
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10182414
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183af4
mov dword [0x1048f0f8], 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 0x10183af4
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x10182457
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183b0a
mov dword [0x1048f0f8], eax
push pe_nt_image_headers32
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x10183b0a
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 0x101824a1
mov edx, 1
mov eax, dword [esp + 0x2c]
cmp eax, esi
jae 0x10182b0c
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 0x101825c0
mov ecx, ebx
mov esi, ebx
mov eax, dword [esp]
mov ebx, dword [esp + 0x14]
mov edi, ecx
sub edi, eax
jb 0x10183a07
cmp ecx, esi
ja 0x10183a07
jae 0x10182620
cmp dword [esp + 0x30], 0xa
jae 0x10182620
lea edi, [eax + 0xa]
cmp edi, esi
cmovae edi, esi
mov dword [esp + 0x2c], edi
sub edi, eax
jb 0x10183a80
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.1014b290
add esp, 4
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 8]
cmp edx, dword [esp + 0x44]
jne 0x1018262e
lea eax, [edx + edx]
mov dword [esp + 0x44], eax
mov eax, dword [0x1044f00c]
movzx eax, byte [eax]
mov eax, dword [0x1048f0f8]
test eax, eax
jne 0x1018256d
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10183a67
mov dword [0x1048f0f8], 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 0x10183a67
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 [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xc]
jmp 0x10182632
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 0x10182940
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x10182962
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x101829fd
mov dword [esp + 0x2c], ecx
cmp edx, dword [esp + 0x44]
je 0x1018253f
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 0x10182495
mov dword [esp + 0x18], edi
jmp 0x101826af
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 0x10182490
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 0x10182710
mov edx, dword [edi + ecx*8 - 0x10]
cmp edx, eax
jbe 0x10182710
cmp ecx, 3
jb 0x10182aef
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 0x1018291d
mov esi, dword [esp + 8]
cmp ebx, 4
jb 0x10182af9
add edx, ecx
cmp dword [edi + ebx*8 - 0x20], edx
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
jbe 0x1018271c
jmp 0x10182b03
cmp ecx, 3
jb 0x10182724
lea edx, [ecx - 3]
mov ecx, dword [edi + ecx*8 - 0x18]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jb 0x10182727
lea edx, [ecx - 2]
cmp ecx, edx
jbe 0x1018394c
lea eax, [edx + 1]
cmp ecx, eax
jbe 0x1018395e
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 0x101839a0
cmp edi, dword [esp + 8]
ja 0x101839b7
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 0x10182860
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 0x10182650
cmp dword [esp + 0x28], 0
jle 0x10182650
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 0x10182650
add edi, 0xffffffe0
cmp ebx, dword [esp + 0x50]
ja 0x101827f0
jmp 0x10182650
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 0x10182910
cmp dword [esp], eax
jle 0x10182910
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 0x10182914
mov edi, dword [esp]
movzx ecx, dl
shl ecx, 5
add esi, ecx
cmp esi, edi
jb 0x101828a0
jmp 0x10182914
mov eax, dword [esp + 0x50]
mov esi, dword [esp + 0x30]
jmp 0x10182654
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jae 0x10182724
jmp 0x10182727
cmp dword [esp + 0x30], 2
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x14]
jne 0x1018299d
mov eax, dword [esp]
mov dword [esp + 0x30], 2
lea ecx, [eax + 2]
jmp 0x101824d8
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 0x101829cf
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x10182980
jmp 0x101829cb
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 0x101829cf
inc eax
add edi, 0x20
cmp dword [esp + 0x30], eax
jne 0x101829b0
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 0x101824d8
cmp ecx, eax
jb 0x10183aac
mov edi, esi
cmp ecx, esi
mov esi, dword [esp + 0x30]
ja 0x10183a98
cmp esi, 2
jae 0x10182a1f
mov esi, edi
jmp 0x101824d8
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 0x10182a40
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov edx, edi
jmp 0x101824d8
mov edx, 2
jmp 0x10182495
mov edx, 3
jmp 0x10182495
mov edx, dword [esp + 0x20]
jmp 0x10182495
push edi
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
push dword [esp + 0x50]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
mov ebx, dword [esp + 0x6c]
mov esi, dword [esp + 0x74]
test esi, esi
je 0x10182b85
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 0x10182b50
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 8]
jmp 0x10182b87
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 0x10182bca
push dword [esp + 0x98]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
test ebx, ebx
je 0x10180d83
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 0x10182cd9
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.10154c60
mov eax, dword [esp + 0x188]
cmp eax, 3
jne 0x10182cff
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.10149160
cmp bl, 0x4b
mov ebx, dword [esp + 0x14]
je 0x10182f17
mov ecx, dword [esp + 4]
inc edi
nop word cs:[eax + eax]
cmp edi, 1
je 0x10182ee7
lea esi, [ecx + 0x150]
dec edi
call fcn.10148c90
mov ecx, esi
jmp 0x10182cc0
mov dword [esp + 0x150], 8
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
jmp 0x10182f37
add dword [esp + 0x18], 8
mov dword [esp], 0
mov dword [esp + 0x10], 8
jmp 0x10182d50
mov ebx, dword [esp + 0x14]
cmp eax, 2
je 0x10182f10
lea ecx, [esp + 0x188]
lea edx, [esp + 0x2d8]
call fcn.10154c60
mov eax, dword [esp + 0x188]
cmp eax, 3
je 0x10182c74
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 0x10182d20
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.101556c0
add esp, 4
mov eax, dword [esp + 0x320]
xor eax, 2
or eax, dword [esp + 0x324]
je 0x10182d2d
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 0x10182eaf
lea ecx, [esp + 0xe8]
call fcn.10150010
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xf0]
jmp 0x10182eb3
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 0x10182d2d
cmp dword [esp + 0x20], 0
je 0x10182eff
push dword [esp + 4]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
cmp dword [esp + 0x1c], 0
je 0x10180d83
push ebx
jmp 0x10180d76
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 0x10182f8b
mov esi, dword [esp + 8]
test esi, esi
je 0x10182f78
shl esi, 5
push esi
push ebx
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x10182f8b
push esi
push 8
call fcn.1001ac80
add esp, 8
jmp 0x10183b2f
push ebx
push 0
push dword [0x1048f0f8]
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 0x10182fee
mov eax, dword [esp + 0x188]
test ebx, ebx
je 0x10182ff7
imul esi, ebx, 0x150
push esi
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
mov edi, eax
test eax, eax
jne 0x1018300a
push esi
push 8
call fcn.1001ac80
add esp, 8
jmp 0x10183b2f
mov edi, dword [esp + 0x188]
jmp 0x1018300a
push eax
push 0
push dword [0x1048f0f8]
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 0x1018306e
mov eax, dword [esp + 0x188]
test esi, esi
je 0x10183077
imul ecx, esi, 0x110
mov dword [esp + 0x50], ecx
push ecx
push eax
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapReAlloc
test eax, eax
jne 0x1018308a
push dword [esp + 0x50]
push 8
call fcn.1001ac80
add esp, 8
jmp 0x10183b2f
mov eax, dword [esp + 0x188]
jmp 0x1018308a
push eax
push 0
push dword [0x1048f0f8]
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 0x101832a4
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, 0x103307da
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
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.10157e80
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
je 0x10183269
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, 0x103308b9
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
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.10157e80
add esp, 4
movzx eax, byte [esp + 0x188]
cmp al, 0x16
jne 0x101832ab
mov eax, dword [esp + 0x11c]
cmp dword [esp + 0x34c], 0
mov byte [eax], 0x17
je 0x10183291
push dword [esp + 0x348]
push 0
push dword [0x1048f0f8]
call sub.KERNEL32.dll_HeapFree
xor ebx, ebx
lea ecx, [esp + 0x304]
call fcn.10148ba0
jmp 0x10180dc5
mov dl, 0x16
jmp 0x1018367b
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, 0x103308d4
lea ecx, [esp + 0x320]
push 0x11
call fcn.101841b0
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, 0x103308e5
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
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, 0x103308f4
lea ecx, [esp + 0x320]
push 0xf
call fcn.101841b0
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, 0x10330947
lea ecx, [esp + 0x320]
push 0xe
call fcn.101841b0
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, 0x10330955
lea ecx, [esp + 0x320]
push 0x16
call fcn.101841b0
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, 0x10330903
lea ecx, [esp + 0x320]
push 0xe
call fcn.101841b0
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, 0x10330911
lea ecx, [esp + 0x320]
push 0x13
call fcn.101841b0
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, 0x10330934
lea ecx, [esp + 0x320]
push 0x13
call fcn.101841b0
add esp, 4
test eax, eax
mov edi, edx
cmove edi, eax
cmovne esi, eax
mov edx, 0x1033096b
lea ecx, [esp + 0x320]
push 0x10
call fcn.101841b0
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 0x10183650
push dword [esp + 0x348]
push 0
push dword [0x1048f0f8]
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 0x10180e0a
mov dword [esp + 0x188], 0x1043819c
mov eax, 0x10438448
jmp 0x101838ea
mov eax, 0x10438458
mov dword [esp + 0x188], 0x1043819c
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.100272b0
add esp, 8
jmp 0x10183b2f
push 0x10438468
push edi
push ecx
mov ebx, dword [esp + 0x18]
call fcn.1002ac90
add esp, 0xc
jmp 0x10183b2f
push 0x10438468
push dword [esp + 8]
push edi
mov ebx, dword [esp + 0x18]
call fcn.1002ac30
add esp, 0xc
jmp 0x10183b2f
mov dword [esp + 0x188], 0x1043819c
mov eax, 0x10438448
jmp 0x1018396e
mov eax, 0x10438458
mov dword [esp + 0x188], 0x1043819c
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.100272b0
add esp, 8
jmp 0x10183b2f
push 0x10438468
push edi
push dword [esp + 0x18]
call fcn.1002ac90
add esp, 0xc
jmp 0x10183b2f
push 0x10438468
push dword [esp + 0xc]
push edi
call fcn.1002ac30
add esp, 0xc
jmp 0x10183b2f
push 0x104384f4
push 0x2c
push 0x104384c8
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438498
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
mov eax, 0x104384b8
jmp 0x10183a40
push 0x104384f4
push 0x2c
push 0x104384c8
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438438
push dword [esp + 8]
push eax
call fcn.1002ac30
add esp, 0xc
jmp 0x10183b2f
mov dword [esp + 0x44], eax
mov eax, 0x10438438
push eax
push dword [esp + 0x48]
push dword [esp + 0x38]
call fcn.1002ac90
add esp, 0xc
jmp 0x10183b2f
push 0x7c
push 4
call fcn.1001ac80
add esp, 8
jmp 0x10183b2f
push 0x10438498
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
mov eax, 0x104384b8
jmp 0x10183ab5
push 0x7c
push 4
call fcn.1001ac80
add esp, 8
jmp 0x10183b2f
push 0x10438438
push edi
push ecx
call fcn.1002ac30
add esp, 0xc
jmp 0x10183b2f
mov eax, 0x10438438
mov dword [esp + 0x2c], ecx
push eax
push dword [esp + 0x30]
push dword [esp + 8]
call fcn.1002ac90
add esp, 0xc
jmp 0x10183b2f
push 0x10438478
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438488
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438478
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438488
push 0x2b
push str.called__Option::unwrap____on_a__None__value_rustc_d5c2e9c342b358556da91d61ed4133f6f50fc0c3library_alloc_srccollections_btree_navigate.rs
call fcn.10027330
add esp, 0xc
jmp 0x10183b2f
push 0x10438ec4
push ebx
push esi
call fcn.1002abd0
add esp, 0xc
ud2