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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x410040]
xor eax, esp
mov dword [esp + 0xa0], eax
mov eax, dword [ebp + 0x10]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
je 0x401269
lea esi, [esp + 0x3c]
call fcn.004019dd
lea esi, [esp + 0x3c]
call fcn.004050e0
mov eax, esi
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x13], bl
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
call fcn.00405640
mov eax, dword [esp + 0x24]
cmp eax, dword [esp + 0x28]
mov esi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
pop ecx
mov dword [esp + 0x10], eax
jbe 0x4012a5
call esi
mov eax, dword [esp + 0x10]
lea edi, [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
jbe 0x4012c1
call esi
cmp edi, ebx
je 0x4012cd
lea eax, [esp + 0x1c]
cmp edi, eax
je 0x4012cf
call esi
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x18], eax
je 0x401387
cmp edi, ebx
jne 0x4012e3
call esi
mov eax, dword [esp + 0x18]
cmp eax, dword [edi + 8]
jb 0x4012ee
call esi
mov eax, dword [esp + 0x18]
lea esi, [esp + 0x90]
call fcn.004017a5
call fcn.004050e0
push 1
mov ecx, esi
call fcn.00405280
cmp dword [esp + 0xa8], ebx
pop ecx
jne 0x401321
push dword [esp + 0x18]
push edi
lea edi, [esp + 0x34]
jmp 0x401345
push str._set_integration
lea esi, [esp + 0x94]
call fcn.00401fc6
test al, al
pop ecx
je 0x401359
push dword [esp + 0x18]
mov byte [esp + 0x13], 1
push edi
lea edi, [esp + 0x3c]
lea esi, [esp + 0x24]
call fcn.00401829
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x18], eax
jmp 0x40136d
mov eax, dword [esp + 0x18]
cmp eax, dword [edi + 8]
jb 0x401368
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add dword [esp + 0x18], 0x1c
push ebx
push 1
lea esi, [esp + 0x98]
call fcn.00401a4c
mov esi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
jmp 0x4012b1
push 7
pop eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x6c], ebx
mov word [esp + 0x5c], bx
mov dword [esp + 0x88], ebx
mov word [esp + 0x78], bx
call fcn.004017f3
or edi, 0xffffffff
test eax, eax
je 0x4013d1
push ebx
lea esi, [esp + 0x20]
call fcn.00401809
push edi
lea ecx, [esp + 0x40]
push ecx
xor ebx, ebx
call fcn.00401955
lea eax, [esp + 0x1c]
call fcn.004017f3
cmp eax, 1
jbe 0x4013f7
push 1
lea esi, [esp + 0x20]
call fcn.00401809
push edi
lea ecx, [esp + 0x5c]
push ecx
xor ebx, ebx
call fcn.00401955
lea eax, [esp + 0x1c]
call fcn.004017f3
cmp eax, 2
jbe 0x40141d
push 2
lea esi, [esp + 0x20]
call fcn.00401809
push edi
lea ecx, [esp + 0x78]
push ecx
xor ebx, ebx
call fcn.00401955
push str._install
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x401458
push 1
call fcn.00401170
lea esi, [esp + 0x5c]
mov dword [esp], 0x40d30c
call fcn.00401fc6
test al, al
setne al
pop ecx
mov byte [esp + 0x10], al
push dword [esp + 0x10]
push ebx
jmp 0x401492
push 0x40d310
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x4014a9
push 1
call fcn.00401170
lea esi, [esp + 0x5c]
mov dword [esp], 0x40d30c
call fcn.00401fc6
test al, al
setne al
pop ecx
mov byte [esp + 0x10], al
push dword [esp + 0x10]
push 1
mov al, byte [esp + 0x17]
mov byte [esp + 0x17], al
lea eax, [esp + 0x17]
push eax
call fcn.00402474
jmp 0x401730
push str._install02
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x401556
push 1
call fcn.00401170
lea esi, [esp + 0x5c]
mov dword [esp], 0x40d30c
call fcn.00401fc6
test al, al
setne al
cmp dword [esp + 0x90], 8
mov byte [esp + 0x18], al
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
mov eax, dword [esp + 0x7c]
pop ecx
jae 0x4014fb
lea eax, [esp + 0x78]
xor ecx, ecx
mov dword [esp + 0x2c], eax
xor esi, esi
jmp 0x401539
cmp ax, 0x39
ja 0x401542
movzx eax, ax
sub eax, 0x30
push ebx
cdq
push 0xa
mov edi, eax
push esi
mov eax, edx
push ecx
mov dword [esp + 0x20], eax
call fcn.0040bf10
add edi, eax
mov eax, dword [esp + 0x10]
adc eax, edx
add dword [esp + 0x2c], 2
mov esi, eax
mov eax, dword [esp + 0x2c]
mov ecx, edi
movzx eax, word [eax]
cmp ax, 0x30
jae 0x401505
push ecx
push dword [esp + 0x18]
lea eax, [esp + 0x17]
push eax
call fcn.004024f4
jmp 0x401730
push str._update
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x401623
push 1
call fcn.00401170
test al, al
pop ecx
jne 0x4015bf
push ebx
push 1
lea esi, [esp + 0x7c]
call fcn.00401a4c
push ebx
push 1
lea esi, [esp + 0x60]
call fcn.00401a4c
lea esi, [esp + 0x1c]
call fcn.004017ce
push ebx
push 1
lea esi, [esp + 0x44]
call fcn.00401a4c
mov ecx, dword [esp + 0xac]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040b47e
mov esp, ebp
pop ebp
ret 0x10
push 0x40d350
lea esi, [esp + 0x5c]
call fcn.00401fc6
test al, al
setne byte [esp + 0x30]
mov dword [esp], 0x40d30c
call fcn.00401fc6
test al, al
setne byte [esp + 0x14]
cmp dword [esp + 0x70], ebx
pop ecx
je 0x4015fa
cmp byte [esp + 0x10], bl
jne 0x401604
cmp byte [esp + 0x2c], bl
jne 0x401604
mov byte [esp + 0x10], 1
mov byte [esp + 0x2c], 1
push dword [esp + 0x2c]
mov al, byte [esp + 0x13]
push dword [esp + 0x14]
mov byte [esp + 0x17], al
lea eax, [esp + 0x17]
push eax
call fcn.00402575
jmp 0x401730
push 0x40d354
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x40165d
push 1
call fcn.00401170
test al, al
pop ecx
je 0x401579
mov al, byte [esp + 0xf]
mov byte [esp + 0xf], al
lea eax, [esp + 0xf]
push eax
call fcn.004026e5
jmp 0x401730
push str._preUninstall
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x40168e
push ebx
call fcn.00401170
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
pop ecx
lea eax, [esp + 0xf]
push eax
call fcn.0040266d
jmp 0x401730
push str._uninstall
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x4016bc
push ebx
call fcn.00401170
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
pop ecx
lea eax, [esp + 0xf]
push eax
call fcn.004025f5
jmp 0x401730
push str._reg
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x4016da
push ebx
call fcn.00401170
pop ecx
push 1
jmp 0x4016f5
push str._unreg
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x40170d
push ebx
call fcn.00401170
pop ecx
push ebx
mov al, byte [esp + 0x13]
mov byte [esp + 0x13], al
lea eax, [esp + 0x13]
push eax
lea ecx, [esp + 0x60]
call fcn.0040275d
jmp 0x401730
push str._statistics
lea esi, [esp + 0x40]
call fcn.00401fc6
test al, al
pop ecx
je 0x401730
push ebx
call fcn.00401170
pop ecx
lea esi, [esp + 0x58]
call fcn.004027eb
xor edi, edi
jmp 0x401579