Function at 0x4378f0
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x596537
mov eax, dword fs:[0]
push eax
sub esp, 0x2b0
mov eax, dword [0x602c90]
xor eax, esp
mov dword [esp + 0x2a8], eax
push ebx
push esi
push edi
mov eax, dword [0x602c90]
xor eax, esp
push eax
lea eax, [esp + 0x2c0]
mov dword fs:[0], eax
xor edi, edi
mov ebx, ecx
mov dword [esp + 0x3c], edi
call fcn.00480ccd
lea eax, [esp + 0x54]
push eax
call fcn.0043eb70
push 0x104
lea ecx, [esp + 0xb0]
push ecx
push edi
mov dword [esp + 0x2d4], edi
call dword [sym.imp.KERNEL32.DLL_GetModuleFileNameW]
lea edx, [esp + 0xac]
push edx
lea ecx, [esp + 0x24]
call fcn.00401d80
push 0x5c7f60
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2cc], 1
call fcn.00401d80
push 0x5c7f64
lea ecx, [esp + 0x28]
mov byte [esp + 0x2cc], 2
call fcn.00401d80
push eax
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x18]
push ecx
mov byte [esp + 0x2d4], 3
call fcn.00420d00
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2cc], 4
call fcn.00405100
mov byte [esp + 0x2c8], 3
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4379f4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437a1c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.InstallerDistributed.exe
lea ecx, [esp + 0x28]
call fcn.00401d80
push eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
push edx
mov byte [esp + 0x2d4], 5
call fcn.00420d00
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2cc], 6
call fcn.00405100
mov byte [esp + 0x2c8], 5
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437a7f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437aa7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0047a7f9
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
push ecx
lea ecx, [esp + 0x14]
call fcn.00401d80
mov esi, eax
mov eax, dword [esi]
cmp dword [eax - 0xc], edi
jl 0x437ae0
push str.relaunch
push eax
call fcn.00560268
add esp, 8
cmp eax, edi
je 0x437ae0
sub eax, dword [esi]
sar eax, 1
cmp eax, 0xffffffff
jne 0x437b0d
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], edi
jl 0x437b06
push str.AirInstallerDistributed.exe
push eax
call fcn.00560268
add esp, 8
cmp eax, edi
je 0x437b06
sub eax, dword [esp + 0x20]
sar eax, 1
cmp eax, 0xffffffff
jne 0x437b0d
mov byte [esp + 0x17], 1
jmp 0x437b12
mov byte [esp + 0x17], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x437b32
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x437d03
call fcn.0047a7f9
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0x48]
push ecx
lea ecx, [esp + 0x1c]
call fcn.00401d80
push 0x5c7fec
lea ecx, [esp + 0x14]
mov byte [esp + 0x2cc], 7
call fcn.00401d80
push eax
lea esi, [esp + 0x24]
mov byte [esp + 0x2cc], 8
call fcn.00430020
mov byte [esp + 0x17], al
mov byte [esp + 0x2c8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x437ba6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
jne 0x437bf5
push 0x5c232c
lea ecx, [esp + 0x14]
call fcn.00401d80
push eax
lea esi, [esp + 0x24]
mov byte [esp + 0x2cc], 9
call fcn.00430020
mov byte [esp + 0x2c8], 7
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437bf5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5c25c8
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.00420dc0
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
push eax
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x2d4], 0xa
call fcn.00420d00
add esp, 0xc
push str._relaunch
push eax
lea eax, [esp + 0x18]
push eax
mov byte [esp + 0x2d4], 0xb
call fcn.00420dc0
add esp, 0xc
mov edx, eax
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2c8], 0xc
call fcn.00448270
mov byte [esp + 0x2c8], 0xb
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437c7d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0xa
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437ca5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 7
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437ccd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0047a7f9
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + 0x20]
push edi
push edi
push 0x10
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebx]
mov eax, dword [edx + 0x17c]
mov ecx, ebx
call eax
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x18]
jmp 0x4389ad
lea edx, [ebx + 0x98]
push edx
call fcn.0045ab90
test al, al
jne 0x437d69
push str.CLauncherDlg::OnInitDialog___UAC.launch___failed._Shut_down_now.
lea ecx, [esp + 0x14]
call fcn.00401d80
mov esi, eax
mov byte [esp + 0x2c8], 0xd
call fcn.0043f300
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437d58
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebx]
mov eax, dword [edx + 0x17c]
mov ecx, ebx
call eax
jmp 0x4389c9
push str.INSTALLER_238EA140_C13E_31F2_E1C5_106067709672
push edi
push edi
call dword [sym.imp.KERNEL32.DLL_CreateMutexW]
mov esi, dword [sym.imp.KERNEL32.DLL_GetLastError]
call esi
cmp eax, 0xb7
je 0x437d90
call esi
cmp eax, 5
jne 0x437e43
push str._get_event__namealready_runningdata_running_1
lea edx, [ebx + 0xa0]
push edx
lea eax, [esp + 0x20]
push eax
call fcn.00420dc0
add esp, 0xc
lea esi, [esp + 0x7c]
call fcn.004623e0
push 0x5c232c
lea ecx, [esp + 0x14]
mov byte [esp + 0x2cc], 0xf
call fcn.00401d80
push str.Installer_Event
mov byte [esp + 0x2cc], 0x10
mov edx, dword [esp + 0x1c]
push eax
mov ecx, esi
call fcn.004627d0
mov byte [esp + 0x2c8], 0xf
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437e09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push edi
push edi
push str.Sorry__another_installer_is_already_running._Please_shut_down_the_other_installer_and_try_again.
call fcn.0047cbe9
mov edx, dword [ebx]
mov eax, dword [edx + 0x17c]
mov ecx, ebx
call eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x2c8], 0xe
call fcn.00462490
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x18]
jmp 0x4389ad
push str.23f2526d
lea ecx, [esp + 0x14]
call fcn.00401d80
lea ecx, [ebx + 0x2fedc]
push eax
mov byte [esp + 0x2cc], 0x11
call fcn.00405100
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x437e8d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str.2.0.1.6
lea ecx, [esp + 0x14]
call fcn.00401d80
lea ecx, [ebx + 0x94]
push eax
mov byte [esp + 0x2cc], 0x12
call fcn.00405100
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437ed7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5c232c
lea ecx, [esp + 0x14]
call fcn.00401d80
lea esi, [ebx + 0x2ff34]
mov byte [esp + 0x2c8], 0x13
push eax
mov ecx, esi
mov dword [esp + 0x3c], esi
call fcn.00405100
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437f27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, esi
call fcn.0044b8d0
mov eax, dword [ebx + 0x2fee8]
mov ecx, dword [ebx + 0x20]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push 0x80
push ecx
call esi
mov eax, dword [ebx + 0x2fee8]
mov edx, dword [ebx + 0x20]
push eax
push edi
push 0x80
push edx
call esi
push 0x5c232c
lea ecx, [esp + 0x14]
mov dword [ebx + 0x2ff2c], edi
call fcn.00401d80
lea ecx, [ebx + 0x2ff38]
push eax
mov byte [esp + 0x2cc], 0x14
call fcn.00405100
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437fab
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0x5c232c
lea ecx, [esp + 0x14]
call fcn.00401d80
push eax
lea ecx, [ebx + 0x2ff3c]
mov byte [esp + 0x2cc], 0x15
call fcn.00405100
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x437ff5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [ebx + 0x2ff3c]
mov byte [ebx + 0x2fed8], 0
mov byte [ebx + 0x2fee4], 1
call fcn.0042f800
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x438028
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x10], eax
mov byte [esp + 0x2c8], 0x16
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43805a
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
lea esi, [esp + 0x10]
mov byte [esp + 0x2c8], 0x17
call fcn.0044aeb0
lea edi, [esp + 0x24]
call fcn.0044be20
push ebx
call fcn.00438d30
push 0x5c232c
lea ecx, [esp + 0x20]
call fcn.00401d80
mov esi, eax
push 0x5c25c8
lea ecx, [esp + 0x40]
mov byte [esp + 0x2cc], 0x18
call fcn.00401d80
mov edi, eax
push 0x5c8270
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2cc], 0x19
call fcn.00401d80
push esi
lea ecx, [ebx + 0x94]
push ecx
push edi
mov byte [esp + 0x2d4], 0x1a
mov ecx, dword [esp + 0x44]
push eax
push ecx
lea edx, [esp + 0x68]
push edx
or ecx, 0xffffffff
call fcn.00444e10
mov byte [esp + 0x2c8], 0x19
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438114
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x18
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43813c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x17
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438164
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push str._Admin:_FALSE
lea ecx, [esp + 0x54]
call fcn.00401d80
mov byte [esp + 0x2c8], 0x1b
call fcn.0044b690
test eax, eax
je 0x4381cb
push str._Admin:_TRUE
lea ecx, [esp + 0x20]
call fcn.00401d80
push eax
lea ecx, [esp + 0x54]
mov byte [esp + 0x2cc], 0x1c
call fcn.00405100
mov byte [esp + 0x2c8], 0x1b
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4381cb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4381e5
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push 0x83
mov byte [esp + 0x2cc], 0x1d
call fcn.00473506
test eax, eax
je 0x43825f
push 0x83
push eax
lea ecx, [esp + 0x34]
call fcn.00401f60
test eax, eax
je 0x43825f
mov ecx, dword [esp + 0x2c]
cmp dword [ecx - 0xc], 0
je 0x43825f
push 0x5c25c8
push 0x5c6bb4
lea ecx, [esp + 0x34]
call fcn.00404af0
lea ecx, [esp + 0x2c]
call fcn.00404e50
push eax
lea ecx, [esp + 0x30]
call fcn.00405100
lea ecx, [esp + 0x2c]
call fcn.00420ce0
push eax
mov ecx, ebx
call fcn.0048659b
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x438279
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
push 0x81
mov byte [esp + 0x2cc], 0x1e
call fcn.00473506
test eax, eax
je 0x4382ae
push 0x81
push eax
lea ecx, [esp + 0x20]
call fcn.00401f60
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4382c8
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
push 0x67
mov byte [esp + 0x2cc], 0x1f
call fcn.00473506
test eax, eax
je 0x4382f7
push 0x67
push eax
lea ecx, [esp + 0x54]
call fcn.00401f60
lea ecx, [esp + 0x4c]
call fcn.00404e50
push eax
lea ecx, [esp + 0x50]
call fcn.00405100
push 0x5c232c
lea ecx, [esp + 0x20]
call fcn.00401d80
lea ecx, [ebx + 0x2ff40]
push eax
mov byte [esp + 0x2cc], 0x20
call fcn.00405100
mov byte [esp + 0x2c8], 0x1f
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438354
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43836e
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
push 0x84
mov byte [esp + 0x2cc], 0x21
call fcn.00473506
test eax, eax
je 0x4383c4
push 0x84
push eax
lea ecx, [esp + 0x3c]
call fcn.00401f60
test eax, eax
je 0x4383c4
mov ecx, dword [esp + 0x34]
cmp dword [ecx - 0xc], 0
je 0x4383c4
lea ecx, [esp + 0x34]
call fcn.00404e50
push eax
lea ecx, [esp + 0x38]
call fcn.00405100
call fcn.0047977b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4383de
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x30], eax
push 0x85
mov byte [esp + 0x2cc], 0x22
call fcn.00473506
test eax, eax
je 0x438447
push 0x85
push eax
lea ecx, [esp + 0x38]
call fcn.00401f60
test eax, eax
je 0x438447
mov ecx, dword [esp + 0x30]
cmp dword [ecx - 0xc], 0
je 0x438447
push 0x5c25c8
push 0x5c6bb4
lea ecx, [esp + 0x38]
call fcn.00404af0
lea ecx, [esp + 0x30]
call fcn.00404e50
push eax
lea ecx, [esp + 0x34]
call fcn.00405100
mov edx, dword [ebx + 0x2ff68]
push 0
push 0
push 0x402
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebx + 0x20]
mov dword [ebx + 0x2ff0c], eax
mov eax, dword [ebx + 0x2ff18]
push eax
call dword [sym.imp.KERNEL32.DLL_ResetEvent]
mov eax, dword [ebx + 0x2ff18]
lea edx, [esp + 0x18]
lea ecx, [ebx + 0x2fef8]
push edx
mov dword [ebx + 0x2ff10], eax
call fcn.00405100
lea eax, [esp + 0x4c]
lea ecx, [ebx + 0x2ff00]
push eax
call fcn.00405100
lea edx, [esp + 0x34]
lea ecx, [ebx + 0x2ff04]
push edx
call fcn.00405100
lea eax, [esp + 0x30]
lea ecx, [ebx + 0x2ff08]
push eax
call fcn.00405100
lea ecx, [ebx + 0x2fefc]
call fcn.00401ef0
push 0
push 0
push 0
lea eax, [ebx + 0x2fef4]
push 0
push eax
push 0x438a60
mov dword [eax], ebx
call fcn.004806fe
mov dword [ebx + 0x2ff1c], eax
test eax, eax
jne 0x43860d
push 0x5c232c
lea ecx, [esp + 0x48]
call fcn.00401d80
mov esi, eax
push 0x5c25c8
lea ecx, [esp + 0x44]
mov byte [esp + 0x2cc], 0x23
call fcn.00401d80
mov edi, eax
push 0x5c25c8
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2cc], 0x24
call fcn.00401d80
mov dword [esp + 0x1c], eax
push 0x5c82b0
lea ecx, [esp + 0x40]
mov byte [esp + 0x2cc], 0x25
call fcn.00401d80
push esi
push edi
mov byte [esp + 0x2d0], 0x26
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x40]
push ecx
push eax
push edx
lea eax, [esp + 0x68]
push eax
or ecx, 0xffffffff
call fcn.00444e10
mov byte [esp + 0x2c8], 0x25
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438595
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x24
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4385bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x23
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4385e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x22
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43860d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push 0
push 0
push 0
lea eax, [ebx + 0x2fef4]
push eax
push 0x43bec0
call fcn.004806fe
mov dword [ebx + 0x2ff24], eax
test eax, eax
jne 0x43874e
push 0x5c232c
lea ecx, [esp + 0x40]
call fcn.00401d80
mov esi, eax
push 0x5c25c8
lea ecx, [esp + 0x20]
mov byte [esp + 0x2cc], 0x27
call fcn.00401d80
mov edi, eax
push 0x5c25c8
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2cc], 0x28
call fcn.00401d80
mov dword [esp + 0x44], eax
push 0x5c82b8
lea ecx, [esp + 0x44]
mov byte [esp + 0x2cc], 0x29
call fcn.00401d80
push esi
push edi
mov byte [esp + 0x2d0], 0x2a
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
push ecx
push eax
push edx
lea eax, [esp + 0x68]
push eax
or ecx, 0xffffffff
call fcn.00444e10
mov byte [esp + 0x2c8], 0x29
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4386d6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x28
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4386fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x27
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438726
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x22
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43874e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 0
push 0
push 0
push 0
lea eax, [ebx + 0x2fef4]
push eax
push 0x439380
call fcn.004806fe
mov dword [ebx + 0x2ff28], eax
test eax, eax
jne 0x438889
push 0x5c232c
lea ecx, [esp + 0x20]
call fcn.00401d80
mov esi, eax
push 0x5c25c8
lea ecx, [esp + 0x4c]
mov byte [esp + 0x2cc], 0x2b
call fcn.00401d80
mov edi, eax
push 0x5c25c8
lea ecx, [esp + 0x44]
mov byte [esp + 0x2cc], 0x2c
call fcn.00401d80
mov ebx, eax
push 0x5c82c0
lea ecx, [esp + 0x48]
mov byte [esp + 0x2cc], 0x2d
call fcn.00401d80
push esi
push edi
push ebx
mov byte [esp + 0x2d4], 0x2e
mov ecx, dword [esp + 0x44]
push eax
push ecx
lea edx, [esp + 0x68]
push edx
or ecx, 0xffffffff
call fcn.00444e10
mov byte [esp + 0x2c8], 0x2d
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438811
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x2c
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438839
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x2b
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438861
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x22
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438889
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x21
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4388b1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x1f
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4388d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x1e
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438901
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x1d
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438929
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x1b
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438951
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x17
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438979
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0x16
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4389a1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 2
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4389c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 1
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4389f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x2c8], 0
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x438a19
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x54]
push ecx
mov dword [esp + 0x2cc], 0xffffffff
call fcn.004075a0
mov eax, 1
mov ecx, dword [esp + 0x2c0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2a8]
xor ecx, esp
call fcn.0055f89e
mov esp, ebp
pop ebp
ret