Function at 0x40635d
Capabilities:
Check mutex on windows
Contain obfuscated stackstrings

Disassembly:
mov eax, 0x444998
call fcn.00420850
sub esp, 0x690
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x34], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
lea edi, [esi + 4]
push 0x40
lea eax, [ebp - 0x14c]
push edi
push eax
mov dword [ebp - 0x10c], esi
call fcn.00420870
add esp, 0xc
add esi, 0x4c
push str.C:CodeBasesisdev_srcRuntimeInstallScriptSetupNew_setup.cpp
push esi
mov byte [ebp - 4], 2
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x44c118
push dword [ebp - 4]
push 0x420526
push 3
push edi
call fcn.00421b08
add esp, 0x14
cmp eax, ebx
mov dword [ebp - 0x30], eax
jne 0x407028
mov eax, dword [ebp + 8]
mov esi, dword [ebp - 0x34]
mov dword [0x458ad4], eax
mov dword [esi + 0x15c], eax
call fcn.0041bf78
push 0x480
mov byte [esi + 0x150], al
call fcn.00420e10
pop ecx
mov dword [ebp - 0x30], eax
cmp eax, ebx
mov byte [ebp - 4], 3
je 0x406406
mov ecx, eax
call fcn.0040717a
jmp 0x406408
xor eax, eax
sub esp, 0x28
mov dword [esi + 0x154], eax
mov dword [ebp - 0x30], esp
mov ecx, esp
lea eax, [ebp + 0x34]
mov edi, 0x4494d8
push ebx
push eax
mov byte [ebp - 4], 2
mov dword [ecx], 0x4494d0
mov dword [ecx + 0x20], edi
call fcn.00401974
sub esp, 0x28
lea eax, [ebp + 0xc]
mov ecx, esp
mov dword [ebp - 0x40], esp
push 1
push eax
mov byte [ebp - 4], 4
call fcn.00404816
mov ecx, dword [esi + 0x154]
mov byte [ebp - 4], 2
call fcn.00407411
mov eax, dword [esi + 0x154]
mov eax, dword [eax + 0x34]
imul eax, eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x584]
push eax
call fcn.0040847d
cmp dword [eax + 0xc], ebx
lea ecx, [ebp - 0x584]
sete byte [ebp - 0xd]
call fcn.004014d4
cmp byte [ebp - 0xd], bl
je 0x4064f3
sub esp, 0x28
lea eax, [ebp - 0x29]
mov ebx, esp
mov dword [ebp - 0x64], esp
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x74], esp
push 1
push eax
push 0x458a40
call fcn.00404840
sub esp, 0x28
lea eax, [ebp - 0x2a]
mov ecx, esp
mov dword [ebp - 0x8c], esp
push 1
push eax
push 0x458a40
mov byte [ebp - 4], 5
call fcn.00404840
mov eax, ebx
xor ebx, ebx
mov byte [ebp - 4], 2
push ebx
push eax
call fcn.00414bcd
mov ecx, dword [esi + 0x154]
add esp, 0x58
call fcn.004084dd
mov ecx, dword [esi + 0x154]
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x14], esp
push eax
call fcn.0040847d
mov ecx, dword [esi + 0x2a8]
call fcn.004094e2
mov eax, dword [esi + 0x154]
cmp byte [eax + 0x12], bl
je 0x406527
mov eax, dword [esi + 0x2a8]
mov byte [eax + 0x21], 1
mov ecx, esi
call fcn.0040e327
test al, al
je 0x406557
lea eax, [ebp + 0x34]
mov ecx, esi
push eax
call fcn.0040d296
mov eax, dword [esi + 0x154]
cmp byte [eax + 0x13], bl
je 0x406557
mov esi, dword [esi + 0x2a8]
mov byte [esi + 0x20], 1
jmp 0x406c4c
lea eax, [ebp - 0x25]
push 1
push eax
push str._Setup.dll
lea ecx, [ebp - 0x354]
call fcn.00401ae3
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x69c]
push eax
mov byte [ebp - 4], 6
call fcn.0040847d
sub esp, 0x28
lea edx, [ebp - 0x354]
mov ecx, esp
mov dword [ebp - 0x50], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.00404878
mov ecx, dword [esi + 0x154]
call fcn.0040854b
lea ecx, [ebp - 0x69c]
mov byte [ebp - 4], 6
call fcn.004014d4
lea ecx, [ebp - 0x354]
mov byte [ebp - 4], 2
call fcn.004014d4
mov eax, dword [esi + 0x154]
cmp byte [eax + 3], bl
je 0x406709
lea eax, [ebp - 0x18]
push 1
push eax
push str.setup.isn
lea ecx, [ebp - 0x2b4]
call fcn.00401ae3
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x3f4]
push eax
mov byte [ebp - 4], 8
call fcn.00403154
push ebx
lea ecx, [ebp - 0x534]
push ebx
push ecx
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.00401624
sub esp, 0x28
lea edx, [ebp - 0x2b4]
mov ecx, esp
mov dword [ebp - 0x90], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00404878
call fcn.00414960
add esp, 0x28
lea ecx, [ebp - 0x534]
mov byte [ebp - 0xd], al
mov byte [ebp - 4], 9
call fcn.004014d4
lea ecx, [ebp - 0x3f4]
mov byte [ebp - 4], 8
call fcn.004014d4
lea ecx, [ebp - 0x2b4]
mov byte [ebp - 4], 2
call fcn.004014d4
cmp byte [ebp - 0xd], bl
mov eax, str._Setup7.dll
jne 0x40667b
mov eax, str._Setup2k.dll
lea ecx, [ebp - 0x26]
push 1
push ecx
push eax
lea ecx, [ebp - 0x37c]
call fcn.00401ae3
mov dword [ebp - 0x14], eax
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x444]
push eax
mov byte [ebp - 4], 0xb
call fcn.00403154
push ebx
lea ecx, [ebp - 0x674]
push ebx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0xc
call fcn.00401624
sub esp, 0x28
mov byte [ebp - 4], 0xd
mov ecx, esp
mov dword [ebp - 0x58], esp
push dword [ebp - 0x14]
push ecx
mov ecx, eax
call fcn.00404878
mov ecx, dword [esi + 0x154]
call fcn.0040854b
lea ecx, [ebp - 0x674]
mov byte [ebp - 4], 0xc
call fcn.004014d4
lea ecx, [ebp - 0x444]
mov byte [ebp - 4], 0xb
call fcn.004014d4
lea ecx, [ebp - 0x37c]
mov byte [ebp - 4], 2
call fcn.004014d4
lea eax, [ebp - 0x1a]
push 1
push eax
push str._Setup.dll
lea ecx, [ebp - 0x32c]
call fcn.00401ae3
mov ecx, dword [esi + 0x154]
push 0x87
sub esp, 0x28
mov byte [ebp - 4], 0xe
mov eax, esp
mov dword [ebp - 0x84], esp
push eax
call fcn.004084ad
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x494]
push eax
mov byte [ebp - 4], 0xf
call fcn.00403511
sub esp, 0x28
lea edx, [ebp - 0x32c]
mov ecx, esp
mov dword [ebp - 0x60], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x10
call fcn.00404878
mov ecx, esi
mov byte [ebp - 4], 0x11
call fcn.0040c65d
push eax
mov ecx, esi
call fcn.0040be4b
lea ecx, [ebp - 0x494]
mov byte [ebp - 4], 0xe
call fcn.004014d4
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 2
call fcn.004014d4
mov ecx, dword [esi + 0x154]
push 0x8a
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x7c], esp
push eax
call fcn.004084ad
mov ecx, esi
call fcn.0040e50a
push eax
mov ecx, esi
call fcn.0040be4b
mov eax, str.setup.ini
mov dword [ebp - 0x214], 0x4494d0
mov ecx, eax
mov dword [ebp - 0x1f4], edi
test ecx, ecx
jne 0x4067e9
mov eax, 0x458a40
lea ecx, [ebp - 0x27]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x214]
call fcn.00401a07
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x624]
push eax
mov byte [ebp - 4], 0x12
call fcn.00403511
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 0x13
push ecx
lea ecx, [ebp - 0x19c]
push ecx
mov ecx, eax
call fcn.00404878
lea ecx, [ebp - 0x624]
mov byte [ebp - 4], 0x16
call fcn.004014d4
lea ecx, [ebp - 0x214]
mov byte [ebp - 4], 0x15
call fcn.004014d4
mov eax, str.setup.ini
mov dword [ebp - 0x28c], 0x4494d0
mov ecx, eax
mov dword [ebp - 0x26c], edi
test ecx, ecx
jne 0x406867
mov eax, 0x458a40
lea ecx, [ebp - 0x1c]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x28c]
call fcn.00401a07
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x4e4]
push eax
mov byte [ebp - 4], 0x17
call fcn.0040847d
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x18
push ecx
lea ecx, [ebp - 0xe0]
push ecx
mov ecx, eax
call fcn.00404878
lea ecx, [ebp - 0x4e4]
mov byte [ebp - 4], 0x1b
call fcn.004014d4
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x1a
call fcn.004014d4
push 0x91
lea eax, [ebp - 0xe0]
sub esp, 0x28
mov ecx, esp
mov dword [ebp - 0x68], esp
push 1
push eax
call fcn.00404816
sub esp, 0x28
lea eax, [ebp - 0x19c]
mov ecx, esp
mov dword [ebp - 0x80], esp
push 1
push eax
mov byte [ebp - 4], 0x1c
call fcn.00404816
mov ecx, esi
mov byte [ebp - 4], 0x1a
call fcn.0040c65d
push eax
mov ecx, esi
call fcn.0040be4b
mov eax, dword [esi + 0x154]
cmp byte [eax + 3], bl
je 0x40692a
lea eax, [ebp - 0x19c]
lea ecx, [ebp - 0xe0]
push eax
call fcn.00401802
sub esp, 0x28
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x70], esp
mov ecx, esp
push ebx
push eax
mov dword [ecx], 0x4494d0
mov dword [ecx + 0x20], edi
call fcn.00401974
mov ecx, dword [esi + 0x154]
lea eax, [ebp + 0x34]
push eax
call fcn.00407cc5
mov eax, dword [esi + 0x154]
cmp byte [eax + 0xe], bl
je 0x40696c
mov eax, dword [esi + 0x2a8]
mov byte [eax + 0x20], 1
mov ecx, esi
call fcn.0040e327
test al, al
jne 0x4069e6
mov eax, dword [esi + 0x154]
cmp byte [eax + 0xf], bl
jne 0x406992
cmp byte [eax + 0x12], bl
jne 0x4069e6
mov ecx, esi
call fcn.0040ce87
test al, al
je 0x4069e6
mov eax, dword [esi + 0x2a8]
sub esp, 0x28
mov dword [ebp - 0x88], esp
mov ecx, esp
mov byte [eax + 0x20], 1
lea eax, [ebp + 0x34]
push ebx
push eax
mov dword [ecx], 0x4494d0
mov dword [ecx + 0x20], edi
call fcn.00401974
mov ecx, esi
call fcn.0040cf23
lea ecx, [ebp - 0xe0]
mov esi, eax
mov byte [ebp - 4], 0x15
call fcn.004014d4
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 2
call fcn.004014d4
jmp 0x406fe3
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x5d4]
push eax
call fcn.00403124
mov ecx, eax
mov byte [ebp - 4], 0x1d
call fcn.00401d5e
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], bl
lea ecx, [ebp - 0x5d4]
mov byte [ebp - 4], 0x1f
call fcn.004014d4
push ebx
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
mov eax, dword [esi + 0x154]
jne 0x406c85
cmp byte [eax + 1], bl
jne 0x406c22
cmp byte [eax + 2], bl
jne 0x406c22
lea eax, [ebp - 0x28]
push ebx
push eax
lea ecx, [ebp - 0x174]
mov dword [ebp - 0x174], 0x4494d0
mov dword [ebp - 0x154], edi
call fcn.004018ff
mov eax, dword [esi + 0x154]
mov byte [ebp - 4], 0x20
push dword [eax + 0x38]
mov ax, word [eax + 0x40]
push eax
lea eax, [ebp - 0x174]
push 0x57
push eax
call fcn.004167ae
add esp, 0x10
lea eax, [ebp - 0x1e]
lea ecx, [ebp - 0x108]
mov dword [ebp - 0x108], 0x4494d0
push ebx
push eax
mov dword [ebp - 0xe8], edi
call fcn.004018ff
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x3a4]
push eax
mov byte [ebp - 4], 0x21
call fcn.004030f4
mov eax, dword [eax + 8]
mov byte [ebp - 4], 0x22
cmp eax, ebx
mov ecx, 0x4494f4
jne 0x406ad9
mov eax, ecx
cmp dword [ebp - 0x16c], ebx
je 0x406ae7
mov ecx, dword [ebp - 0x16c]
push eax
lea eax, [ebp - 0x108]
push ecx
push eax
call fcn.004049e8
add esp, 0xc
lea ecx, [ebp - 0x3a4]
mov byte [ebp - 4], 0x21
call fcn.004014d4
cmp dword [ebp - 0xfc], ebx
jne 0x406b68
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x41c]
push eax
call fcn.004030f4
push str.___InstallShield_Wizard
push eax
lea eax, [ebp - 0x3cc]
mov byte [ebp - 4], 0x23
push eax
call fcn.0040518d
add esp, 0xc
push eax
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x24
call fcn.00401802
lea ecx, [ebp - 0x3cc]
mov byte [ebp - 4], 0x23
call fcn.004014d4
lea ecx, [ebp - 0x41c]
mov byte [ebp - 4], 0x21
call fcn.004014d4
lea eax, [ebp - 0x15]
push ebx
push eax
lea ecx, [ebp - 0xb8]
mov dword [ebp - 0xb8], 0x4494d0
mov dword [ebp - 0x98], edi
call fcn.004018ff
mov esi, dword [esi + 0x154]
mov byte [ebp - 4], 0x25
push dword [esi + 0x38]
mov ax, word [esi + 0x40]
push eax
lea eax, [ebp - 0xb8]
push 0x9029
push eax
call fcn.004167ae
add esp, 0x10
cmp dword [ebp - 0xac], ebx
jne 0x406bd2
mov eax, str.Another_instance_of_this_setup_is_already_running._nPlease_wait_for_the_other_instance_to_finish_and_then_try_again.
mov ecx, eax
test ecx, ecx
jne 0x406bc6
mov eax, 0x458a40
push eax
lea ecx, [ebp - 0xb8]
call fcn.00401df5
lea ecx, [ebp - 0xb8]
call fcn.00401d5e
push 0x40
lea ecx, [ebp - 0x108]
mov esi, eax
call fcn.00401d5e
push eax
push esi
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x21
call fcn.004014d4
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 0x20
call fcn.004014d4
lea ecx, [ebp - 0x174]
mov byte [ebp - 4], 0x1f
call fcn.004014d4
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x1a
call fcn.0040b198
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x15
call fcn.004014d4
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 2
call fcn.004014d4
lea eax, [ebp - 0x14c]
push 0x40
push eax
mov eax, dword [ebp - 0x10c]
add eax, 4
push eax
call fcn.00420870
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.004014d4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x34]
call fcn.004014d4
xor eax, eax
jmp 0x407017
cmp byte [eax + 0x11], bl
jne 0x406d22
cmp byte [eax + 0x12], bl
jne 0x406d22
mov eax, str.ISSetup.dll
mov dword [ebp - 0x264], 0x4494d0
mov ecx, eax
mov dword [ebp - 0x244], edi
test ecx, ecx
jne 0x406cb7
mov eax, 0x458a40
lea ecx, [ebp - 0x16]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x264]
call fcn.00401a07
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x46c]
push eax
mov byte [ebp - 4], 0x28
call fcn.00403511
sub esp, 0x28
lea edx, [ebp - 0x264]
mov ecx, esp
mov dword [ebp - 0x78], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x29
call fcn.00404878
mov ecx, dword [esi + 0x154]
call fcn.00408514
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 0x28
call fcn.004014d4
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x264]
jmp 0x406da8
mov eax, str.ISSetup.dll
mov dword [ebp - 0x1ec], 0x4494d0
mov ecx, eax
mov dword [ebp - 0x1cc], edi
test ecx, ecx
jne 0x406d42
mov eax, 0x458a40
lea ecx, [ebp - 0x17]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x1ec]
call fcn.00401a07
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x4bc]
push eax
mov byte [ebp - 4], 0x26
call fcn.0040847d
sub esp, 0x28
lea edx, [ebp - 0x1ec]
mov ecx, esp
mov dword [ebp - 0x48], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x27
call fcn.00404878
mov ecx, dword [esi + 0x154]
call fcn.00408514
lea ecx, [ebp - 0x4bc]
mov byte [ebp - 4], 0x26
call fcn.004014d4
mov byte [ebp - 4], 0x1f
lea ecx, [ebp - 0x1ec]
call fcn.004014d4
mov eax, dword [esi + 0x154]
cmp byte [eax + 3], bl
je 0x406e6a
mov eax, str.ISSetup.dll
mov dword [ebp - 0x23c], 0x4494d0
mov ecx, eax
mov dword [ebp - 0x21c], edi
test ecx, ecx
jne 0x406ddc
mov eax, 0x458a40
lea ecx, [ebp - 0x19]
push ebx
push ecx
push eax
lea ecx, [ebp - 0x23c]
call fcn.00401a07
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x55c]
push eax
mov byte [ebp - 4], 0x2a
call fcn.00403154
push ebx
lea ecx, [ebp - 0x50c]
push ebx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x2b
call fcn.00401624
sub esp, 0x28
lea edx, [ebp - 0x23c]
mov ecx, esp
mov dword [ebp - 0x4c], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x2c
call fcn.00404878
mov ecx, dword [esi + 0x154]
call fcn.00408514
lea ecx, [ebp - 0x50c]
mov byte [ebp - 4], 0x2b
call fcn.004014d4
lea ecx, [ebp - 0x55c]
mov byte [ebp - 4], 0x2a
call fcn.004014d4
lea ecx, [ebp - 0x23c]
mov byte [ebp - 4], 0x1f
call fcn.004014d4
mov eax, dword [esi + 0x154]
cmp byte [eax + 0x11], bl
jne 0x406e7e
cmp byte [eax + 0x12], bl
je 0x406f61
lea eax, [ebp - 0x1b]
push 1
mov edi, 0x453588
push eax
push edi
lea ecx, [ebp - 0x304]
call fcn.00401ae3
lea eax, [ebp - 0x1d]
push 1
push eax
push edi
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x2d
call fcn.00401ae3
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x5fc]
push 0xcf
push eax
mov byte [ebp - 4], 0x2e
call fcn.0040847d
sub esp, 0x28
lea edx, [ebp - 0x304]
mov ecx, esp
mov dword [ebp - 0x54], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x2f
call fcn.00404878
mov ecx, dword [esi + 0x154]
lea eax, [ebp - 0x5ac]
push eax
mov byte [ebp - 4], 0x30
call fcn.00403511
sub esp, 0x28
lea edx, [ebp - 0x2dc]
mov ecx, esp
mov dword [ebp - 0x5c], esp
push edx
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x31
call fcn.00404878
mov ecx, esi
mov byte [ebp - 4], 0x32
call fcn.0040c65d
push eax
mov ecx, esi
call fcn.0040be4b
lea ecx, [ebp - 0x5ac]
mov byte [ebp - 4], 0x2f
call fcn.004014d4
lea ecx, [ebp - 0x5fc]
mov byte [ebp - 4], 0x2e
call fcn.004014d4
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x2d
call fcn.004014d4
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 0x1f
call fcn.004014d4
mov ecx, esi
call fcn.00409529
test al, al
jne 0x406f7d
push 0xd3
push 0xffffec75
mov ecx, esi
call fcn.0040be4b
mov ecx, esi
call fcn.004095d9
mov ecx, esi
call fcn.00409968
mov eax, dword [esi + 0x154]
cmp byte [eax], bl
je 0x406fa3
push 0xdc
mov ecx, esi
call fcn.0040a058
jmp 0x406faf
push 0xde
mov ecx, esi
call fcn.0040a227
push eax
mov ecx, esi
call fcn.0040be4b
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x1a
call fcn.0040b198
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0x15
call fcn.004014d4
lea ecx, [ebp - 0x19c]
mov byte [ebp - 4], 2
call fcn.004014d4
xor esi, esi
lea eax, [ebp - 0x14c]
push 0x40
push eax
mov eax, dword [ebp - 0x10c]
add eax, 4
push eax
call fcn.00420870
add esp, 0xc
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.004014d4
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x34]
call fcn.004014d4
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x54
mov esi, dword [ebp - 0x34]
cmp eax, 0x80042002
jne 0x4070eb
mov eax, dword [esi + 0x154]
cmp byte [eax + 2], bl
jne 0x4070f9
cmp byte [eax + 1], bl
jne 0x4070f9
lea eax, [ebp - 0xd]
push ebx
push eax
lea ecx, [ebp - 0x1c4]
mov dword [ebp - 0x1c4], 0x4494d0
mov dword [ebp - 0x1a4], 0x4494d8
call fcn.004018ff
lea eax, [ebp - 0x1c4]
mov ecx, esi
push eax
push 0x9028
mov byte [ebp - 4], 0x33
call fcn.0040e5b0
mov ecx, dword [esi + 0x154]
mov edi, dword [esi + 0x164]
lea eax, [ebp - 0x64c]
push eax
call fcn.004030f4
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 0x34
call fcn.00401d5e
mov ecx, dword [ebp - 0x14]
push 0x10
mov dword [ebp - 0x40], eax
call fcn.00401d5e
push eax
push dword [ebp - 0x40]
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x64c]
mov byte [ebp - 4], 0x33
call fcn.004014d4
lea ecx, [ebp - 0x1c4]
mov byte [ebp - 4], 2
call fcn.004014d4
jmp 0x4070f9
cmp eax, 0x80042000
je 0x4070f9
mov ecx, esi
call fcn.00402b21
mov eax, dword [esi + 0x180]
cmp eax, ebx
je 0x407121
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x6c], ebx
mov dword [esi + 0x190], 5
mov ecx, dword [eax]
push esi
push eax
mov byte [ebp - 4], 0x36
call dword [ecx + 0xac]
mov eax, dword [esi + 0x18c]
cmp eax, ebx
je 0x40715e
mov dword [ebp - 0x24], ebx
mov ecx, dword [eax]
lea edx, [ebp - 0x24]
push edx
push 0x453578
push eax
mov byte [ebp - 4], 0x37
call dword [ecx]
cmp eax, ebx
jl 0x40714d
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x40715e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, 0x80042000
cmp dword [ebp - 0x30], eax
jne 0x40716f
mov esi, eax
jmp 0x406fe3
mov esi, dword [esi + 0x28c]
jmp 0x406fe3