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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x453048
mov eax, dword fs:[0]
push eax
sub esp, 0x138
mov eax, dword [0x46b554]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push esi
push edi
mov eax, dword [0x46b554]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
xor esi, esi
push 0x84
mov dword [esp + 0x84], eax
mov dword [esp + 0x40], esi
call fcn.0042fcc4
add esp, 4
cmp eax, esi
je 0x40b2f0
mov dword [esp + 0x38], eax
mov dword [eax], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x38]
mov dword [eax + 8], eax
mov ecx, dword [esp + 0x38]
mov byte [ecx + 0x80], 1
mov edx, dword [esp + 0x38]
mov byte [edx + 0x81], 1
mov dword [esp + 0x150], esi
push 0x84
mov dword [esp + 0x50], esi
call fcn.0042fcc4
add esp, 4
cmp eax, esi
je 0x40b2c7
mov dword [esp + 0x48], eax
mov dword [eax], eax
mov eax, dword [esp + 0x48]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x48]
mov dword [eax + 8], eax
mov eax, dword [esp + 0x48]
mov byte [eax + 0x80], 1
mov ecx, dword [esp + 0x48]
mov byte [ecx + 0x81], 1
lea edx, [esp + 0x14]
push edx
mov byte [esp + 0x154], 1
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
push str.SoftwareResearch_In_MotionRIMBBLaunchAgentRegs
push SysStringLen
mov dword [esp + 0x20], esi
call edi
cmp dword [esp + 0x14], esi
je 0x40a4d5
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x38]
push esi
push ecx
call fcn.00409e00
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push str.SoftwareResearch_In_MotionRIMBBLaunchAgentRegs
push 0x80000001
mov dword [esp + 0x20], esi
call edi
cmp dword [esp + 0x14], esi
je 0x40a503
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x38]
push esi
push ecx
call fcn.00409e00
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push str.SoftwareResearch_In_MotionRIMBBLaunchAgentNRegs
push SysStringLen
mov dword [esp + 0x20], esi
call edi
cmp dword [esp + 0x14], esi
je 0x40a532
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
push 1
push ecx
call fcn.00409e00
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push str.SoftwareResearch_In_MotionRIMBBLaunchAgentNRegs
push 0x80000001
mov dword [esp + 0x20], esi
call edi
cmp dword [esp + 0x14], esi
je 0x40a561
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x48]
push 1
push ecx
call fcn.00409e00
add esp, 0xc
push 0x2c
mov dword [esp + 0x60], esi
call fcn.0042fcc4
add esp, 4
cmp eax, esi
je 0x40b29e
mov dword [esp + 0x58], eax
mov dword [eax], eax
mov eax, dword [esp + 0x58]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x58]
mov dword [eax + 8], eax
mov edx, dword [esp + 0x58]
mov byte [edx + 0x28], 1
mov eax, dword [esp + 0x58]
mov byte [eax + 0x29], 1
push SysStringLen
lea edi, [esp + 0x58]
mov ecx, str.SoftwareResearch_In_MotionRIMBBLaunchAgentConfigRemove
mov byte [esp + 0x154], 2
call fcn.00409a10
add esp, 4
push 0x80000001
mov ecx, str.SoftwareResearch_In_MotionRIMBBLaunchAgentConfigRemove
call fcn.00409a10
mov eax, dword [esp + 0x5c]
mov ebx, dword [eax]
add esp, 4
cmp ebx, eax
je 0x40a648
lea eax, [ebx + 0xc]
push eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.0040d990
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
push eax
push ecx
lea edi, [esp + 0x34]
lea esi, [esp + 0x3c]
call fcn.0040d2c0
cmp byte [ebx + 0x29], 0
jne 0x40a642
mov eax, dword [ebx + 8]
cmp byte [eax + 0x29], 0
jne 0x40a624
mov ebx, eax
mov eax, dword [ebx]
cmp byte [eax + 0x29], 0
jne 0x40a642
mov ebx, eax
mov eax, dword [ebx]
cmp byte [eax + 0x29], 0
je 0x40a618
jmp 0x40a642
mov eax, dword [ebx + 4]
cmp byte [eax + 0x29], 0
jne 0x40a640
lea ecx, [ecx]
cmp ebx, dword [eax + 8]
jne 0x40a640
mov ebx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x29], 0
je 0x40a630
mov ebx, eax
cmp ebx, dword [esp + 0x58]
jne 0x40a5d5
mov eax, dword [esp + 0x48]
mov ebx, dword [eax]
cmp ebx, eax
je 0x40a6df
lea eax, [ebx + 0xc]
push eax
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.0040d990
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
push edx
lea edi, [esp + 0x34]
lea esi, [esp + 0x3c]
call fcn.0040d2c0
cmp byte [ebx + 0x81], 0
jne 0x40a6d5
mov eax, dword [ebx + 8]
cmp byte [eax + 0x81], 0
jne 0x40a6b1
mov ebx, eax
mov eax, dword [ebx]
cmp byte [eax + 0x81], 0
jne 0x40a6d5
mov ebx, eax
mov eax, dword [ebx]
cmp byte [eax + 0x81], 0
je 0x40a6a2
jmp 0x40a6d5
mov eax, dword [ebx + 4]
cmp byte [eax + 0x81], 0
jne 0x40a6d3
lea ecx, [ecx]
cmp ebx, dword [eax + 8]
jne 0x40a6d3
mov ebx, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x81], 0
je 0x40a6c0
mov ebx, eax
cmp ebx, dword [esp + 0x48]
jne 0x40a656
call fcn.00427140
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x40a6f8
mov eax, dword [ebx + 0x10]
mov dword [eax + 0x58], 0x411980
mov eax, ebx
call fcn.0041aea0
push str.return_function__args__n_tlocal_path__string.format___q___args.Path__n_n_tlocal_launch___path__n_tif_args.Args_then_n_t_tlaunch__launch_.._string.format_____q___args.Args__n_tend_n_t_n_tlocal_pidlist_____n_t_n_tif_args.PID_then_for_k_v_in_pairs_args.PID__do_n_t_tpidlist__pidlist_.._string.format___d_____v__n_tend_end_n_n_tif_pidlist_____then_pidlist___nil__n_telse_pidlist_____.._pidlist_..____n_tend_n_n_treturn_string.format__n___nlocal_path___s_nlocal_multi__vid__pid__atwake__launched___s___s___s___s_nlocal_function_check_atwake___n_treturn_atwake__nil_or_true_nend_nlocal_function_check_pid_device__n_tif_not_pid_then_return_true_end_n_tlocal_check__device.PID_n_tfor_k_v_in_pairs_pid__do_if_v__check_then_return_true_end_end_nend_nlocal_function_exec_check_device__n_treturn__vid__nil_or_vid__device.VID__and_check_pid_device__and_check_atwake___and_n_t_t____multi_or__launched__nil_and_not_IsRunning_path____nend_nreturn__n_tAppID___q__Priority___d__n_tDeviceArrival__function__device__n_t_tif_exec_check_device__then_n_t_t_tlaunched__LaunchAbsolute__s__multi_or_false__n_t_t_tif_multi_then_launched__nil_end_n_t_tend_n_tend__n_tOnProcessShutdown__function__proc__n_t_tif_launched__proc_then_launched__nil_end_n_tend_n_n____path__args.Multi_or__nil___args.VID_or__nil___pidlist__args.AtWake_or__nil___args.AppName__args.Priority__launch__nend
push ebx
mov ecx, 0x513
mov eax, str.return_function__args__n_tlocal_path__string.format___q___args.Path__n_n_tlocal_launch___path__n_tif_args.Args_then_n_t_tlaunch__launch_.._string.format_____q___args.Args__n_tend_n_t_n_tlocal_pidlist_____n_t_n_tif_args.PID_then_for_k_v_in_pairs_args.PID__do_n_t_tpidlist__pidlist_.._string.format___d_____v__n_tend_end_n_n_tif_pidlist_____then_pidlist___nil__n_telse_pidlist_____.._pidlist_..____n_tend_n_n_treturn_string.format__n___nlocal_path___s_nlocal_multi__vid__pid__atwake__launched___s___s___s___s_nlocal_function_check_atwake___n_treturn_atwake__nil_or_true_nend_nlocal_function_check_pid_device__n_tif_not_pid_then_return_true_end_n_tlocal_check__device.PID_n_tfor_k_v_in_pairs_pid__do_if_v__check_then_return_true_end_end_nend_nlocal_function_exec_check_device__n_treturn__vid__nil_or_vid__device.VID__and_check_pid_device__and_check_atwake___and_n_t_t____multi_or__launched__nil_and_not_IsRunning_path____nend_nreturn__n_tAppID___q__Priority___d__n_tDeviceArrival__function__device__n_t_tif_exec_check_device__then_n_t_t_tlaunched__LaunchAbsolute__s__multi_or_false__n_t_t_tif_multi_then_launched__nil_end_n_t_tend_n_tend__n_tOnProcessShutdown__function__proc__n_t_tif_launched__proc_then_launched__nil_end_n_tend_n_n____path__args.Multi_or__nil___args.VID_or__nil___pidlist__args.AtWake_or__nil___args.AppName__args.Priority__launch__nend
call fcn.00411920
add esp, 8
test eax, eax
jne 0x40a74f
mov eax, dword [ebx + 8]
sub eax, 0x10
mov dword [esp + 0x2c], eax
sub eax, dword [ebx + 0x20]
lea ecx, [esp + 0x2c]
push eax
push ecx
push 0x40fec0
xor edx, edx
mov eax, ebx
mov dword [esp + 0x3c], 1
call fcn.00418c80
add esp, 0xc
test eax, eax
je 0x40a7e3
mov esi, dword [ebx + 8]
sub esi, 0x10
cmp dword [esi + 8], 4
je 0x40a782
mov edi, ebx
call fcn.0042d760
test eax, eax
jne 0x40a76a
xor esi, esi
jmp 0x40a787
mov eax, dword [ebx + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x40a77c
mov eax, ebx
call fcn.0041ac70
mov esi, dword [ebx + 8]
sub esi, 0x10
mov esi, dword [esi]
add esi, 0x10
push esi
push str.Builin_error:__s
call fcn.0040ba70
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 0x70]
mov ecx, dword [edi + 0x20]
push ecx
call fcn.00419630
add esp, 0xc
push 1
push edi
call fcn.004199b0
add esp, 8
mov dword [edi + 0x74], 0
mov eax, dword [edi + 0x28]
xor edx, edx
push edx
mov dword [edi + 0x14], eax
mov eax, dword [eax]
push 0x427270
push edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x34], edx
call fcn.00418020
add esp, 0xc
test eax, eax
jne 0x40a7b6
mov eax, edi
call fcn.00426f90
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov dword [esp + 0x1c], ecx
cmp ecx, eax
je 0x40b19e
mov eax, dword [ebx + 8]
mov ecx, dword [eax - 0x10]
mov edi, dword [esp + 0x1c]
mov dword [eax], ecx
mov edx, dword [eax - 0xc]
mov dword [eax + 4], edx
mov ecx, dword [eax - 8]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 0x10]
add dword [ebx + 8], 0x10
mov edx, dword [eax + 0x44]
add edi, 0x28
mov dword [esp + 0x14], edi
cmp edx, dword [eax + 0x40]
jb 0x40a82a
mov eax, ebx
call fcn.0041ac70
mov eax, dword [ebx + 8]
push 0x20
push 0
push 0
push ebx
mov dword [esp + 0x28], eax
call fcn.0041f550
mov esi, eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax + 0x1c]
mov dword [esi], ecx
mov dl, byte [eax + 0x14]
mov dword [eax + 0x1c], esi
xor eax, eax
push eax
push eax
push eax
and dl, 3
push ebx
mov byte [esi + 5], dl
mov byte [esi + 4], 5
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x1c], eax
mov word [esi + 6], 0xff
mov dword [esi + 0x10], 0x457510
call fcn.0041f550
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1c]
add esp, 0x20
test eax, eax
jns 0x40a89c
shl eax, 4
xor ecx, ecx
lea ebx, [ebx]
add eax, 0x10
mov edx, dword [esi + 0xc]
mov dword [edx + eax - 8], ecx
js 0x40a890
mov eax, 0x457510
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 0x1c], 0
mov byte [esi + 7], 0
mov dword [eax], esi
mov dword [eax + 8], 5
add dword [ebx + 8], 0x10
mov ecx, edi
call fcn.00409670
mov esi, dword [esp + 0x10]
mov ebx, dword [esi + 8]
push 4
push str.Path
push esi
sub ebx, 0x20
call fcn.004273f0
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 8]
add esp, 0xc
sub eax, 0x10
push eax
lea ecx, [esp + 0xa8]
push ecx
push ebx
push esi
mov dword [esp + 0xbc], 4
call fcn.0042dad0
add dword [esi + 8], 0xfffffff0
add esp, 0x10
cmp dword [edi + 0x14], 8
jb 0x40a91d
mov eax, dword [edi]
jmp 0x40a91f
mov eax, edi
push eax
push str.Adding_Legacy_Configuration:_ws
call fcn.0040ba70
mov edx, dword [edi + 0x54]
mov eax, dword [esi + 8]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [eax + 8], 3
push 8
fstp qword [eax]
add dword [esi + 8], 0x10
mov ebx, dword [esi + 8]
push str.Priority
push esi
add ebx, 0xffffffe0
call fcn.004273f0
mov dword [esp + 0x98], eax
mov eax, dword [esi + 8]
add esp, 0x14
sub eax, 0x10
push eax
lea ecx, [esp + 0x88]
push ecx
push ebx
push esi
mov dword [esp + 0x9c], 4
call fcn.0042dad0
add dword [esi + 8], 0xfffffff0
add esp, 0x10
cmp dword [edi + 0x14], 8
jb 0x40a994
mov ebx, dword [edi]
jmp 0x40a996
mov ebx, edi
mov eax, dword [edi + 0x10]
lea ebx, [ebx + eax*2 - 2]
movzx eax, word [ebx]
cmp eax, 0x2f
je 0x40a9d5
cmp ax, 0x5c
je 0x40a9c4
mov eax, edi
call fcn.00404450
cmp ebx, eax
jbe 0x40a9c4
movzx eax, word [ebx - 2]
sub ebx, 2
cmp eax, 0x2f
jne 0x40a9a5
jmp 0x40a9d5
movzx eax, word [ebx]
cmp eax, 0x2f
je 0x40a9d5
cmp eax, 0x5c
jne 0x40b122
mov ecx, 0xf
add ebx, 2
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x118], 0
mov byte [esp + 0x108], 0
mov byte [esp + 0x150], 3
cmp word [ebx], 0
je 0x40aa6b
jmp 0x40aa17
mov ecx, dword [esp + 0x11c]
mov dl, byte [ebx]
mov byte [esp + 0x7c], dl
mov edx, dword [esp + 0x108]
mov eax, edx
cmp ecx, 0x10
jae 0x40aa32
lea eax, [esp + 0x108]
add eax, dword [esp + 0x118]
cmp ecx, 0x10
mov ecx, edx
jae 0x40aa47
lea ecx, [esp + 0x108]
test eax, eax
je 0x40aa4d
sub eax, ecx
mov ecx, dword [esp + 0x7c]
push ecx
lea edi, [esp + 0x10c]
call fcn.00404ef0
add ebx, 2
cmp word [ebx], 0
jne 0x40aa10
mov edi, dword [esp + 0x14]
lea edx, [esp + 0x124]
push edx
lea ebx, [esp + 0x10c]
call fcn.0040e0f0
add esp, 4
mov byte [esp + 0x150], 4
cmp dword [eax + 0x14], 0x10
jb 0x40aa98
mov eax, dword [eax]
mov dword [esp + 0x18], eax
jmp 0x40aa9c
mov dword [esp + 0x18], eax
test eax, eax
jne 0x40aaac
mov eax, dword [esi + 8]
mov dword [eax + 8], 0
jmp 0x40aaee
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40aab0
sub eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x40aacf
mov eax, esi
call fcn.0041ac70
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ebx, dword [esi + 8]
push edx
push eax
push esi
call fcn.004273f0
add esp, 0xc
mov dword [ebx], eax
mov dword [ebx + 8], 4
mov eax, 0x10
add dword [esi + 8], eax
mov byte [esp + 0x150], 3
cmp dword [esp + 0x138], eax
jb 0x40ab17
mov ecx, dword [esp + 0x124]
push ecx
call fcn.0042f9a7
add esp, 4
mov ebx, dword [esi + 8]
push 7
push str.AppName
push esi
sub ebx, 0x20
call fcn.004273f0
mov edx, dword [esi + 8]
add esp, 0xc
sub edx, 0x10
push edx
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xe8]
push eax
push ebx
push esi
mov dword [esp + 0xfc], 4
call fcn.0042dad0
add dword [esi + 8], 0xfffffff0
add esp, 0x10
mov byte [esp + 0x150], 2
cmp dword [esp + 0x11c], 0x10
jb 0x40ab7e
mov ecx, dword [esp + 0x108]
push ecx
call fcn.0042f9a7
add esp, 4
cmp dword [edi + 0x2c], 0
je 0x40abd3
lea ecx, [edi + 0x1c]
mov ebx, esi
call fcn.00409670
mov ebx, dword [esi + 8]
push 4
push str.Args
push esi
sub ebx, 0x20
call fcn.004273f0
mov edx, dword [esi + 8]
add esp, 0xc
sub edx, 0x10
push edx
mov dword [esp + 0xc8], eax
lea eax, [esp + 0xc8]
push eax
push ebx
push esi
mov dword [esp + 0xdc], 4
call fcn.0042dad0
add esp, 0x10
add dword [esi + 8], 0xfffffff0
cmp dword [edi + 0x50], 0
jle 0x40ac54
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x40abef
mov eax, esi
call fcn.0041ac70
mov ebx, dword [esi + 8]
push 4
push str.true
push esi
call fcn.004273f0
add esp, 0xc
mov dword [ebx], eax
mov dword [ebx + 8], 4
add dword [esi + 8], 0x10
mov ebx, dword [esi + 8]
push 6
push str.AtWake
push esi
add ebx, 0xffffffe0
call fcn.004273f0
mov edx, dword [esi + 8]
add esp, 0xc
sub edx, 0x10
push edx
mov dword [esp + 0xf8], eax
lea eax, [esp + 0xf8]
push eax
push ebx
push esi
mov dword [esp + 0x10c], 4
call fcn.0042dad0
add esp, 0x10
add dword [esi + 8], 0xfffffff0
cmp dword [edi + 0x4c], 0
jle 0x40acd5
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x40ac70
mov eax, esi
call fcn.0041ac70
mov ebx, dword [esi + 8]
push 4
push str.true
push esi
call fcn.004273f0
add esp, 0xc
mov dword [ebx], eax
mov dword [ebx + 8], 4
add dword [esi + 8], 0x10
mov ebx, dword [esi + 8]
push 5
push str.Multi
push esi
add ebx, 0xffffffe0
call fcn.004273f0
mov edx, dword [esi + 8]
add esp, 0xc
sub edx, 0x10
push edx
mov dword [esp + 0x98], eax
lea eax, [esp + 0x98]
push eax
push ebx
push esi
mov dword [esp + 0xac], 4
call fcn.0042dad0
add esp, 0x10
add dword [esi + 8], 0xfffffff0
mov ecx, dword [edi + 0x38]
cmp ecx, dword [edi + 0x3c]
je 0x40aeab
mov eax, dword [esi + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x40acf3
mov eax, esi
call fcn.0041ac70
mov eax, dword [esi + 8]
push 0x20
push 0
push 0
push esi
mov dword [esp + 0x30], eax
call fcn.0041f550
mov ebx, eax
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x1c]
mov dword [ebx], ecx
mov dl, byte [eax + 0x14]
mov dword [eax + 0x1c], ebx
xor eax, eax
push eax
push eax
push eax
and dl, 3
push esi
mov byte [ebx + 5], dl
mov byte [ebx + 4], 5
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x1c], eax
mov word [ebx + 6], 0xff
mov dword [ebx + 0x10], 0x457510
call fcn.0041f550
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x1c]
add esp, 0x20
test eax, eax
jns 0x40ad61
shl eax, 4
xor ecx, ecx
add eax, 0x10
mov edx, dword [ebx + 0xc]
mov dword [edx + eax - 8], ecx
js 0x40ad53
jmp 0x40ad63
xor ecx, ecx
mov eax, 0x457510
mov dword [ebx + 0x10], eax
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x20]
mov dword [ebx + 0x1c], ecx
mov byte [ebx + 7], 0
mov dword [eax], ebx
mov dword [eax + 8], 5
add dword [esi + 8], 0x10
mov eax, dword [edi + 0x3c]
sub eax, dword [edi + 0x38]
xor ebx, ebx
sar eax, 2
test eax, eax
je 0x40ae62
lea esp, [esp]
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x38]
mov eax, dword [edx + ebx*4]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
mov eax, dword [esi + 8]
mov dword [eax + 8], 3
fstp qword [eax]
add dword [esi + 8], 0x10
mov eax, dword [esi + 8]
cmp dword [eax - 8], 4
je 0x40adf3
mov edi, dword [esp + 0x10]
lea esi, [eax - 0x10]
call fcn.0042d760
test eax, eax
je 0x40adef
mov ecx, edi
mov eax, dword [ecx + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x40adef
mov eax, edi
call fcn.0041ac70
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 8]
lea eax, [edi - 0x20]
inc ebx
mov dword [esp + 0x20], eax
mov eax, dword [eax]
push ebx
push esi
call fcn.0042b100
mov ecx, dword [edi - 0x10]
mov dword [eax], ecx
mov edx, dword [edi - 0xc]
mov dword [eax + 4], edx
mov ecx, dword [edi - 8]
mov dword [eax + 8], ecx
mov eax, dword [esi + 8]
add esp, 8
cmp dword [eax - 8], 4
jl 0x40ae49
mov edx, dword [eax - 0x10]
test byte [edx + 5], 3
je 0x40ae49
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
test byte [eax + 5], 4
je 0x40ae49
mov ecx, dword [esi + 0x10]
and byte [eax + 5], 0xfb
mov edx, dword [ecx + 0x28]
mov dword [eax + 0x18], edx
mov dword [ecx + 0x28], eax
add dword [esi + 8], 0xfffffff0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x3c]
sub ecx, dword [eax + 0x38]
sar ecx, 2
cmp ebx, ecx
jb 0x40ada0
mov edi, dword [esi + 8]
push 3
push 0x457328
push esi
sub edi, 0x20
call fcn.004273f0
mov edx, dword [esi + 8]
add esp, 0xc
sub edx, 0x10
push edx
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb8]
push eax
push edi
push esi
mov dword [esp + 0xcc], 4
call fcn.0042dad0
mov edi, dword [esp + 0x24]
add esp, 0x10
add dword [esi + 8], 0xfffffff0
mov edi, dword [edi + 0x48]
cmp edi, 0xffff
je 0x40af50
test edi, edi
je 0x40af50
mov eax, dword [esi + 8]
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
mov dword [eax + 8], 3
fstp qword [eax]
add dword [esi + 8], 0x10
mov eax, dword [esi + 8]
cmp dword [eax - 8], 4
je 0x40af0b
mov edi, dword [esp + 0x10]
lea esi, [eax - 0x10]
call fcn.0042d760
test eax, eax
je 0x40af07
mov ecx, edi
mov eax, dword [ecx + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x40af07
mov eax, edi
call fcn.0041ac70
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 8]
push 3
push 0x458bd4
push esi
sub edi, 0x20
call fcn.004273f0
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 8]
add esp, 0xc
sub eax, 0x10
push eax
lea ecx, [esp + 0xd8]
push ecx
push edi
push esi
mov dword [esp + 0xec], 4
call fcn.0042dad0
add esp, 0x10
add dword [esi + 8], 0xfffffff0
mov eax, dword [esi + 8]
sub eax, 0x20
mov dword [esp + 0x70], eax
sub eax, dword [esi + 0x20]
lea edx, [esp + 0x70]
push eax
push edx
push 0x40fec0
xor edx, edx
mov eax, esi
mov dword [esp + 0x80], 1
call fcn.00418c80
add esp, 0xc
test eax, eax
mov eax, dword [esi + 8]
jne 0x40b0d3
sub eax, 0x10
cmp dword [eax + 8], 4
je 0x40afc2
mov edi, dword [esp + 0x10]
mov esi, eax
call fcn.0042d760
test eax, eax
jne 0x40afa6
mov esi, edi
jmp 0x40afc7
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x44]
cmp ecx, dword [eax + 0x40]
jb 0x40afb8
mov eax, edi
call fcn.0041ac70
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x10]
sub eax, 0x10
mov eax, dword [eax]
add eax, 0x10
mov ecx, eax
call fcn.00402e20
mov ebx, eax
test ebx, ebx
je 0x40b11e
mov edi, dword [esp + 0x80]
mov eax, dword [edi + 4]
lea edx, [esp + 0x18]
mov dword [esp + 0x18], ebx
cmp edx, eax
jae 0x40b059
mov edx, dword [edi]
lea ecx, [esp + 0x18]
cmp edx, ecx
ja 0x40b059
mov ebx, ecx
mov ecx, dword [edi + 8]
sub ebx, edx
sar ebx, 2
cmp eax, ecx
jne 0x40b047
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40b294
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x40b047
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40b033
xor ecx, ecx
jmp 0x40b035
add ecx, edx
cmp ecx, eax
jae 0x40b03b
mov ecx, eax
push ecx
mov esi, edi
call fcn.00405b20
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 4]
mov edx, dword [edi]
lea ecx, [edx + ebx*4]
test eax, eax
je 0x40b0ac
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x40b0ac
mov ecx, dword [edi + 8]
cmp eax, ecx
jne 0x40b0a3
mov edx, dword [edi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x40b294
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x40b0a3
mov edx, ecx
shr edx, 1
mov esi, 0x3fffffff
sub esi, edx
cmp esi, ecx
jae 0x40b08f
xor ecx, ecx
jmp 0x40b091
add ecx, edx
cmp ecx, eax
jae 0x40b097
mov ecx, eax
push ecx
mov esi, edi
call fcn.00405b20
mov esi, dword [esp + 0x10]
mov eax, dword [edi + 4]
test eax, eax
je 0x40b0ac
mov dword [eax], ebx
add dword [edi + 4], 4
mov eax, dword [edi + 4]
mov edi, dword [edi]
mov ecx, eax
mov byte [esp + 0x2c], 0
mov edx, dword [esp + 0x2c]
push edx
sub ecx, edi
sar ecx, 2
push ecx
push eax
push edi
call fcn.00406210
add esp, 0x10
jmp 0x40b11e
sub eax, 0x10
cmp dword [eax + 8], 4
je 0x40b10b
mov edi, dword [esp + 0x10]
mov esi, eax
call fcn.0042d760
test eax, eax
jne 0x40b0ef
mov esi, edi
jmp 0x40b110
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0x44]
cmp edx, dword [eax + 0x40]
jb 0x40b101
mov eax, edi
call fcn.0041ac70
mov eax, dword [edi + 8]
mov esi, dword [esp + 0x10]
sub eax, 0x10
mov eax, dword [eax]
add eax, 0x10
push eax
push str.Internal_error:__s
call fcn.0040ba70
add esp, 8
add dword [esi + 8], 0xfffffff0
mov eax, dword [esp + 0x1c]
cmp byte [eax + 0x81], 0
jne 0x40b18c
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x81], 0
jne 0x40b163
mov eax, dword [ecx]
cmp byte [eax + 0x81], 0
jne 0x40b15d
jmp 0x40b150
mov ecx, eax
mov eax, dword [ecx]
cmp byte [eax + 0x81], 0
je 0x40b150
mov dword [esp + 0x1c], ecx
jmp 0x40b18c
mov eax, dword [eax + 4]
cmp byte [eax + 0x81], 0
jne 0x40b188
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 8]
jne 0x40b188
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x81], 0
je 0x40b16f
mov dword [esp + 0x1c], eax
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
cmp edx, dword [esp + 0x38]
jne 0x40a7f5
mov eax, dword [ebx + 0x10]
mov edi, dword [eax + 0x70]
mov ecx, dword [edi + 0x20]
push ecx
call fcn.00419630
add esp, 4
push 1
push edi
call fcn.004199b0
add esp, 8
mov dword [edi + 0x74], 0
mov eax, dword [edi + 0x28]
xor edx, edx
push edx
mov dword [edi + 0x14], eax
mov eax, dword [eax]
push 0x427270
push edi
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x34], edx
call fcn.00418020
add esp, 0xc
test eax, eax
jne 0x40b1c2
mov eax, edi
call fcn.00426f90
mov byte [esp + 0x150], 5
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x30]
lea esi, [esp + 0x5c]
call fcn.00408d10
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0042f9a7
add esp, 4
mov byte [esp + 0x150], 6
mov eax, dword [esp + 0x48]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x30]
lea esi, [esp + 0x4c]
call fcn.0040d2c0
mov edx, dword [esp + 0x48]
push edx
call fcn.0042f9a7
add esp, 4
mov dword [esp + 0x150], 7
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [esp + 0x30]
lea esi, [esp + 0x3c]
call fcn.0040d2c0
mov eax, dword [esp + 0x38]
push eax
call fcn.0042f9a7
add esp, 4
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.0042f9b2
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.0042f8ec
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], esi
call fcn.0042fddd
push 0x46809c
lea edx, [esp + 0x68]
push edx
mov dword [esp + 0x6c], vtable.std::bad_alloc.0
call fcn.00437405
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x30], esi
call fcn.0042fddd
push 0x46809c
lea ecx, [esp + 0x74]
push ecx
mov dword [esp + 0x78], vtable.std::bad_alloc.0
call fcn.00437405
lea edx, [esp + 0x28]
push edx
lea ecx, [esp + 0x68]
mov dword [esp + 0x2c], esi
call fcn.0042fddd
push 0x46809c
lea eax, [esp + 0x68]
push eax
mov dword [esp + 0x6c], vtable.std::bad_alloc.0
call fcn.00437405
int3