Function at 0x436d70
Capabilities:
Check if file exists
Create directory
Delete file
Get file attributes
Inspect load icon resource
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c4
mov eax, dword [0x5b4b3c]
xor eax, esp
mov dword [esp + 0x2c0], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
call fcn.00438550
call fcn.00435e90
call fcn.00438680
test eax, eax
jne 0x436e3c
push 0x5a4a14
push 1
sub esp, 0x18
mov ecx, esp
push 3
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], eax
push 0x5a4534
mov byte [ecx], al
call fcn.00427720
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x5ba004]
cmp eax, dword [ecx + 4]
jle 0x436e15
push 0x5ba004
call fcn.0052aae3
add esp, 4
cmp dword [0x5ba004], 0xffffffff
jne 0x436e15
call fcn.0042edc0
push 0x5546b0
call fcn.0052ae5a
add esp, 4
push 0x5ba004
call fcn.0052aaa4
add esp, 4
push 0x5ba008
call fcn.0042eea0
add esp, 0x24
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2c0]
xor ecx, esp
call fcn.0052a949
mov esp, ebp
pop ebp
ret 0x10
push str..net
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x436e6e
mov eax, dword [ecx]
jmp 0x436e70
mov eax, ecx
push 3
push 0x5a4534
mov byte [eax], 0
call fcn.00427720
mov eax, dword fs:[0x2c]
mov ebx, dword [eax]
mov eax, dword [0x5ba004]
mov dword [esp + 0x8c], ebx
cmp eax, dword [ebx + 4]
jle 0x436ed0
push 0x5ba004
call fcn.0052aae3
add esp, 4
cmp dword [0x5ba004], 0xffffffff
jne 0x436ed0
call fcn.0042edc0
push 0x5546b0
call fcn.0052ae5a
add esp, 4
push 0x5ba004
call fcn.0052aaa4
add esp, 4
push 0x5ba008
call fcn.0042eea0
add esp, 0x24
lea eax, [esp + 0x40]
push 0x2c
push 0
push eax
call fcn.0052dac0
add esp, 0xc
mov dword [esp + 0x3c], 0x30
push 0x65
push esi
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
call esi
push 0x65
push dword [esp + 0x54]
mov dword [esp + 0x5c], eax
call esi
mov dword [esp + 0x68], eax
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExW]
lea ecx, [esp + 0x1c0]
mov dword [esp + 0x1d4], 0xf
mov dword [esp + 0x1d0], 0
mov byte [esp + 0x1c0], 0
mov dword [esp + 0x1ec], 0xf
mov dword [esp + 0x1e8], 0
mov byte [esp + 0x1d8], 0
mov dword [esp + 0x204], 0xf
mov dword [esp + 0x200], 0
mov byte [esp + 0x1f0], 0
call fcn.004472f0
test eax, eax
jne 0x436f8d
xor esi, esi
jmp 0x4384c9
lea eax, [esp + 0x1c0]
push eax
call fcn.004384f0
lea ecx, [esp + 0x190]
call fcn.0042d280
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x198]
mov dword [esp + 0xec], 0xf
push eax
lea ecx, [esp + 0xdc]
mov dword [esp + 0xec], 0
mov byte [esp + 0xdc], 0
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0xd8]
call fcn.00428790
mov esi, eax
lea ecx, [esp + 0x1c0]
lea eax, [esp + 0xe8]
push eax
call fcn.004477d0
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00428880
mov eax, dword [esp + 0xfc]
cmp eax, 0x10
jb 0x437032
inc eax
lea ecx, [esp + 0xe8]
push eax
push dword [esp + 0xec]
call fcn.00427a30
cmp dword [esp + 0xe4], 0x10
lea eax, [esp + 0xd0]
cmovae eax, dword [esp + 0xd0]
push eax
push 0x5a4a34
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
mov dword [esp + 0x114], 0xf
lea eax, [esp + 0xd0]
mov dword [esp + 0x110], 0
lea ecx, [esp + 0x100]
mov byte [esp + 0x100], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
push 0xe
push str.updateplugin
lea ecx, [esp + 0x108]
call fcn.00428790
cmp dword [esp + 0x114], 0x10
lea eax, [esp + 0x100]
cmovae eax, dword [esp + 0x100]
push eax
push 0x5a4a50
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
mov dword [esp + 0x144], 0xf
lea eax, [esp + 0xd0]
mov dword [esp + 0x140], 0
lea ecx, [esp + 0x130]
mov byte [esp + 0x130], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
push 7
push 0x5a4a68
lea ecx, [esp + 0x138]
call fcn.00428790
cmp dword [esp + 0x144], 0x10
lea eax, [esp + 0x130]
cmovae eax, dword [esp + 0x130]
push eax
push 0x5a4a70
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
mov dword [esp + 0x84], 0xf
lea eax, [esp + 0x100]
mov dword [esp + 0x80], 0
lea ecx, [esp + 0x70]
mov byte [esp + 0x70], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
cmp dword [esp + 0x84], 0x10
lea eax, [esp + 0x70]
cmovae eax, dword [esp + 0x70]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4371d0
test al, 0x10
je 0x4371d0
mov esi, 1
jmp 0x4371d2
xor esi, esi
mov eax, dword [esp + 0x84]
cmp eax, 0x10
jb 0x4371ed
inc eax
lea ecx, [esp + 0x70]
push eax
push dword [esp + 0x74]
call fcn.00427a30
test esi, esi
je 0x4374ec
sub esp, 0x18
mov dword [esp + 0xd8], 0
mov ecx, esp
mov dword [esp + 0xd8], 0
xorps xmm0, xmm0
movq qword [esp + 0xd0], xmm0
mov dword [esp + 0xd0], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
mov dword [esp + 0xd4], 0
jb 0x437258
mov eax, dword [ecx]
jmp 0x43725a
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0x11c]
push 0
push eax
call fcn.004277e0
lea ecx, [esp + 0xd0]
call fcn.00439100
mov edi, dword [esp + 0xd4]
mov eax, 0x2aaaaaab
mov ebx, dword [esp + 0xd0]
mov ecx, edi
sub ecx, ebx
add esp, 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4374b2
mov esi, ebx
cmp ebx, edi
je 0x4374b2
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x138]
mov dword [esp + 0xbc], 0xf
push eax
lea ecx, [esp + 0xac]
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0xa8]
call fcn.00428790
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00428880
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437330
mov eax, dword [ecx]
jmp 0x437332
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.004277e0
call fcn.0042e470
add esp, 0x18
mov dword [esp + 0x24], 0xf
lea eax, [esp + 0xa0]
mov dword [esp + 0x20], 0
lea ecx, [esp + 0x10]
mov byte [esp + 0x10], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
cmp dword [esp + 0x24], 0x10
lea eax, [esp + 0x10]
push 0
cmovae eax, dword [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
mov eax, dword [esp + 0x24]
cmp eax, 0x10
jb 0x4373a7
inc eax
lea ecx, [esp + 0x10]
push eax
push dword [esp + 0x14]
call fcn.00427a30
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x108]
mov dword [esp + 0x8c], 0xf
push eax
lea ecx, [esp + 0x7c]
mov dword [esp + 0x8c], 0
mov byte [esp + 0x7c], 0
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0x78]
call fcn.00428790
push 0xffffffffffffffff
push 0
push esi
mov ecx, eax
call fcn.00428880
lea edx, [esp + 0xa0]
lea ecx, [esp + 0x70]
call fcn.0043aa50
test al, al
je 0x437450
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437432
mov eax, dword [ecx]
jmp 0x437434
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0x8c]
push 0
push eax
call fcn.004277e0
call fcn.0042e470
add esp, 0x18
mov eax, dword [esp + 0x84]
cmp eax, 0x10
jb 0x43746b
inc eax
lea ecx, [esp + 0x70]
push eax
push dword [esp + 0x74]
call fcn.00427a30
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], 0
mov byte [esp + 0x70], 0
cmp eax, 0x10
jb 0x4374a7
inc eax
lea ecx, [esp + 0xa0]
push eax
push dword [esp + 0xa4]
call fcn.00427a30
add esi, 0x18
cmp esi, edi
jne 0x4372b0
test ebx, ebx
je 0x4374e8
push dword [esp + 0xc]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.00428190
mov ecx, dword [esp + 0xc8]
mov eax, 0x2aaaaaab
sub ecx, ebx
add esp, 8
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebx
call fcn.00427930
mov ebx, dword [esp + 0x6c]
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xd8]
mov dword [esp + 0x134], 0xf
push eax
lea ecx, [esp + 0x124]
mov dword [esp + 0x134], 0
mov byte [esp + 0x124], 0
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0x120]
call fcn.00428790
mov esi, eax
lea ecx, [esp + 0x1c0]
lea eax, [esp + 0xe8]
push eax
call fcn.00447750
push 0xffffffffffffffff
push 0
push eax
mov ecx, esi
call fcn.00428880
push 4
push 0x5a4a88
mov ecx, eax
call fcn.00428790
mov eax, dword [esp + 0xfc]
cmp eax, 0x10
jb 0x437586
inc eax
lea ecx, [esp + 0xe8]
push eax
push dword [esp + 0xec]
call fcn.00427a30
cmp dword [esp + 0x12c], 0x10
lea eax, [esp + 0x118]
cmovae eax, dword [esp + 0x118]
push eax
push 0x5a4a90
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x4375d0
mov eax, dword [ecx]
jmp 0x4375d2
mov eax, ecx
push 3
push 0x5a4534
mov byte [eax], 0
call fcn.00427720
mov eax, dword [0x5ba004]
cmp eax, dword [ebx + 4]
jle 0x437623
push 0x5ba004
call fcn.0052aae3
add esp, 4
cmp dword [0x5ba004], 0xffffffff
jne 0x437623
call fcn.0042edc0
push 0x5546b0
call fcn.0052ae5a
add esp, 4
push 0x5ba004
call fcn.0052aaa4
add esp, 4
push 0x5ba008
call fcn.0042eea0
add esp, 0x10
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437658
mov eax, dword [ecx]
jmp 0x43765a
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0x134]
push 0
push eax
call fcn.004277e0
call fcn.0042e300
add esp, 0x18
test eax, eax
je 0x438443
mov ecx, str.BCUpgrade.exe
call fcn.0042d330
mov esi, eax
push esi
push str.BCUpgrade.exe
push str._s_ProcID:_d
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
add esp, 0x2c
cmp esi, 0xffffffff
je 0x4376f1
mov ecx, esi
call fcn.0042d4b0
push 0x5a4abc
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
push 0xbb8
call ebx
mov ecx, str.eahost.exe
call fcn.0042d330
mov esi, eax
push esi
push str.eahost.exe
push str._s_ProcID:_d
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x2c
cmp esi, 0xffffffff
je 0x43775e
mov ecx, esi
call fcn.0042d4b0
push 0x5a4ad8
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
push 0xbb8
call ebx
mov ecx, str.dghost.exe
call fcn.0042d330
mov esi, eax
push esi
push str.dghost.exe
push str._s_ProcID:_d
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x2c
cmp esi, 0xffffffff
je 0x4377cb
mov ecx, esi
call fcn.0042d4b0
push 0x5a4af0
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
push 0xbb8
call ebx
push 0x3e8
call ebx
lea edx, [esp + 0xd0]
call fcn.0043af00
push 0x5a4afc
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
mov dword [esp + 0xb4], 0xf
lea eax, [esp + 0x190]
mov dword [esp + 0xb0], 0
lea ecx, [esp + 0xa0]
mov byte [esp + 0xa0], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
push 0xd
push str._rollback.txt
lea ecx, [esp + 0xa8]
call fcn.00428790
push 0x5a42e0
lea ecx, [esp + 0x17c]
call fcn.004274a0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437887
mov eax, dword [ecx]
jmp 0x437889
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.004277e0
call fcn.0042e300
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 0x18
test eax, eax
je 0x437b34
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x4378de
mov eax, dword [ecx]
jmp 0x4378e0
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.004277e0
lea ecx, [esp + 0xd0]
call fcn.004396f0
add esp, 0x18
lea ecx, [esp + 0x178]
push eax
call fcn.004273a0
lea ecx, [esp + 0xb8]
call fcn.00427360
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x198]
mov dword [esp + 0xa4], 0xf
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0x90]
call fcn.00428790
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x180]
push ecx
mov ecx, eax
call fcn.00428880
cmp dword [esp + 0x18c], 0x10
lea eax, [esp + 0xb8]
lea edi, [esp + 0x178]
cmovae edi, dword [esp + 0x178]
lea ecx, [esp + 0x1c0]
push eax
call fcn.00447790
cmp dword [eax + 0x14], 0x10
jb 0x4379ab
mov eax, dword [eax]
push edi
push eax
call fcn.005379e3
add esp, 8
lea ecx, [esp + 0xb8]
test eax, eax
sete bl
call fcn.00427360
test bl, bl
je 0x4379f0
push str.leave_rollback
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
jmp 0x437a5a
push str.rollback
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0xc
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437a3c
mov eax, dword [ecx]
jmp 0x437a3e
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xa4]
push 0
push eax
call fcn.004277e0
call fcn.0042d930
add esp, 0x18
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437a85
mov eax, dword [ecx]
jmp 0x437a87
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xa4]
push 0
push eax
call fcn.004277e0
call fcn.0042e3e0
add esp, 0x18
test eax, eax
jne 0x437ae4
cmp dword [esp + 0xb4], 0x10
lea eax, [esp + 0xa0]
cmovae eax, dword [esp + 0xa0]
push eax
call esi
test eax, eax
jne 0x437b20
cmp dword [esp + 0xb4], 0x10
lea eax, [esp + 0xa0]
cmovae eax, dword [esp + 0xa0]
push eax
push 0x5a4b38
jmp 0x437b01
cmp dword [esp + 0x9c], 0x10
lea eax, [esp + 0x88]
cmovae eax, dword [esp + 0x88]
push eax
push 0x5a4b50
push 1
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
lea ecx, [esp + 0x88]
call fcn.00427360
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x437b70
cmp dword [esp + 0xb4], 0x10
lea eax, [esp + 0xa0]
cmovae eax, dword [esp + 0xa0]
push eax
push 0x5a4b64
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
push 0x5a4b74
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
mov dword [esp + 0x84], 0xf
lea eax, [esp + 0x190]
mov dword [esp + 0x80], 0
lea ecx, [esp + 0x70]
mov byte [esp + 0x70], 0
push 0xffffffffffffffff
push 0
push eax
call fcn.004277e0
push 0xe
push str._addupdate.ini
lea ecx, [esp + 0x78]
call fcn.00428790
sub esp, 0x18
mov dword [esp + 0x18c], 0xf
mov ecx, esp
mov dword [esp + 0x188], 0
mov byte [esp + 0x178], 0
mov dword [esp + 0x1d4], 0xf
push str.add_version
mov dword [esp + 0x1d4], 0
mov byte [esp + 0x1c4], 0
call fcn.004274a0
sub esp, 0x18
mov ecx, esp
push str.add_update
call fcn.004274a0
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x437c59
mov eax, dword [ecx]
jmp 0x437c5b
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [esp + 0xbc]
push 0
push eax
call fcn.004277e0
lea eax, [esp + 0x1a8]
push eax
call fcn.00448560
sub esp, 0x18
mov ecx, esp
push str.add_effect
call fcn.004274a0
sub esp, 0x18
mov ecx, esp
push str.add_update
call fcn.004274a0
sub esp, 0x18
lea eax, [esp + 0xb8]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004277e0
lea eax, [esp + 0x1f0]
push eax
call fcn.00448560
push 0x5a4bc8
lea ecx, [esp + 0x1ac]
call fcn.00427280
test eax, eax
jne 0x437d91
push 0xffffffffffffffff
push eax
mov dword [esp + 0xa0], eax
lea ecx, [esp + 0x90]
mov byte [esp + 0x90], al
lea eax, [esp + 0x198]
push eax
mov dword [esp + 0xa8], 0xf
call fcn.004277e0
push 1
push 0x5a4488
lea ecx, [esp + 0x90]
call fcn.00428790
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x168]
push ecx
mov ecx, eax
call fcn.00428880
sub esp, 0x18
lea eax, [esp + 0xa0]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004277e0
call fcn.0042d930
add esp, 0x18
lea eax, [esp + 0x70]
cmp dword [esp + 0x84], 0x10
cmovae eax, dword [esp + 0x70]
push eax
call esi
lea ecx, [esp + 0x88]
call fcn.00427360
jmp 0x437e16
push 0x5a4bcc
lea ecx, [esp + 0x1ac]
call fcn.00427280
test eax, eax
jne 0x437e16
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], 0xf
push eax
mov byte [ecx], al
lea eax, [esp + 0x180]
push eax
call fcn.004277e0
mov ecx, 0x5b8f40
call fcn.00447810
sub esp, 0x18
lea eax, [esp + 0x178]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004277e0
mov ecx, 0x5b8f40
call fcn.00447a50
cmp dword [esp + 0x84], 0x10
lea eax, [esp + 0x70]
cmovae eax, dword [esp + 0x70]
push eax
call esi
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x198]
mov dword [esp + 0x164], 0xf
push eax
lea ecx, [esp + 0x154]
mov dword [esp + 0x164], 0
mov byte [esp + 0x154], 0
call fcn.004277e0
push 0xb
push str._addnewfile
lea ecx, [esp + 0x150]
call fcn.00428790
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x150]
mov dword [esp + 0xa4], 0xf
push eax
lea ecx, [esp + 0x94]
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
call fcn.004277e0
cmp dword [esp + 0x9c], 0x10
lea eax, [esp + 0x88]
cmovae eax, dword [esp + 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x437ec3
test al, 0x10
je 0x437ec3
mov esi, 1
jmp 0x437ec5
xor esi, esi
mov eax, dword [esp + 0x9c]
cmp eax, 0x10
jb 0x437ee6
inc eax
lea ecx, [esp + 0x88]
push eax
push dword [esp + 0x8c]
call fcn.00427a30
test esi, esi
je 0x437f19
sub esp, 0x18
lea eax, [esp + 0x160]
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.004277e0
call fcn.0042d930
add esp, 0x18
push 0x5a4bdc
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0xc
mov esi, esp
mov ecx, esi
call fcn.00427e20
push 0
push 0
mov ecx, esi
call fcn.004275d0
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x198]
mov ecx, esi
push eax
call fcn.004277e0
sub esp, 0x18
lea eax, [esp + 0x1c0]
mov ecx, esp
push eax
call fcn.00427500
lea ecx, [esp + 0x1f0]
call fcn.00438870
add esp, 0x30
call fcn.0042b7a0
mov ecx, eax
call fcn.0042b800
push ecx
lea ecx, [esp + 0xbc]
call fcn.00426f60
call fcn.00427260
push ecx
lea ecx, [esp + 0x8c]
call fcn.00426f60
call fcn.00427260
sub esp, 0x18
lea ecx, [esp + 0x1d8]
push esp
call fcn.00447790
lea ecx, [esp + 0xd0]
call fcn.00439800
add esp, 0x18
lea ecx, [esp + 0xb8]
call fcn.0043b3a0
cmp eax, 2
jbe 0x43809c
lea eax, [esp + 0xc]
push eax
call fcn.0043b3c0
mov edx, eax
lea ecx, [esp + 0xb8]
lea eax, [esp + 0x6c]
push eax
call fcn.0043b3d0
push dword [edx]
push dword [eax]
call fcn.0043b6f0
add esp, 8
lea ecx, [esp + 0xb8]
call fcn.0043b3a0
xor esi, esi
lea edi, [eax - 2]
test edi, edi
jle 0x43809c
nop word [eax + eax]
push esi
lea ecx, [esp + 0xbc]
call fcn.0043b380
sub esp, 0x18
add eax, 0x18
mov ecx, esp
push eax
call fcn.00427500
call fcn.0042d930
add esp, 0x18
lea ecx, [esp + 0xb8]
push esi
call fcn.0043b380
sub esp, 0x18
add eax, 0x18
mov ecx, esp
push eax
call fcn.00427500
call fcn.0042e3e0
add esp, 0x18
test eax, eax
je 0x438097
push esi
lea ecx, [esp + 0xbc]
call fcn.0043b380
add eax, 0x18
lea ecx, [esp + 0x88]
push eax
call fcn.00427110
inc esi
cmp esi, edi
jl 0x438030
lea ecx, [esp + 0x88]
call fcn.004271e0
test eax, eax
je 0x4380bf
mov eax, ecx
push eax
push ecx
call fcn.0042b7a0
add esp, 4
mov ecx, eax
call fcn.0042c210
push 0x3e8
call ebx
push 0x5a4bf8
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
push 3
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
lea ecx, [esp + 0x220]
call fcn.0042d280
lea eax, [esp + 0x220]
push eax
lea ecx, [esp + 0xec]
call fcn.00427500
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x1c4]
call fcn.004477d0
push eax
push 0x5a4488
lea ecx, [esp + 0xf0]
call fcn.004294e0
mov ecx, eax
call fcn.00429520
lea ecx, [esp + 0x3c]
call fcn.00427360
push 0x5a4a88
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x1c8]
call fcn.00447750
push eax
push 0x5a4488
lea ecx, [esp + 0xf4]
call fcn.004294e0
mov ecx, eax
call fcn.00429520
mov ecx, eax
call fcn.004294e0
lea ecx, [esp + 0x3c]
call fcn.00427360
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x284]
push eax
lea edx, [esp + 0xd8]
lea ecx, [esp + 0xf0]
call fcn.0042ea70
mov esi, eax
add esp, 8
test esi, esi
je 0x438250
push esi
push str.StartProgram_Invoice_Assistant_Failed__d
push 1
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
lea ecx, [esp + 0xe8]
call fcn.00427360
lea ecx, [esp + 0x220]
call fcn.00427360
lea ecx, [esp + 0x88]
call fcn.00427200
lea ecx, [esp + 0xb8]
call fcn.0043b3e0
lea ecx, [esp + 0x148]
call fcn.00427360
lea ecx, [esp + 0x1a8]
call fcn.00427360
lea ecx, [esp + 0x160]
call fcn.00427360
lea ecx, [esp + 0x70]
call fcn.00427360
lea ecx, [esp + 0x178]
call fcn.00427360
lea ecx, [esp + 0xa0]
call fcn.00427360
jmp 0x43848d
push 0
push str.StartProgram_Ret__d
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
push 0x3e8
push dword [esp + 0x30]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4382a1
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x6c]
push eax
push dword [esp + 0x30]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
call fcn.00436240
push 0x40
lea eax, [esp + 0x240]
mov dword [esp + 0x23c], 0x44
push 0
push eax
call fcn.0052dac0
add esp, 0xc
lea ecx, [esp + 0x208]
xorps xmm0, xmm0
movups xmmword [esp + 0x10], xmm0
call fcn.0042d280
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x1c4]
call fcn.004477d0
push eax
push 0x5a4488
lea ecx, [esp + 0x210]
call fcn.004294e0
mov ecx, eax
call fcn.00429520
lea ecx, [esp + 0x3c]
call fcn.00427360
push str.BCUpgrade.exe
push 0x5a4488
lea ecx, [esp + 0x210]
call fcn.004294e0
mov ecx, eax
call fcn.004294e0
lea ecx, [esp + 0x208]
call fcn.004275c0
push eax
push str.BCUpgrade__s
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x264]
push eax
lea edx, [esp + 0x100]
lea ecx, [esp + 0x238]
call fcn.0042ea70
mov eax, dword [esp + 0x5c]
add esp, 0x30
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x438386
push eax
call esi
mov eax, dword [esp + 0x14]
test eax, eax
je 0x438391
push eax
call esi
push dword [esp + 0x18]
push str.BCUpgrade_Id__d
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x28
push 0x1388
call ebx
lea ecx, [esp + 0x208]
call fcn.00427360
lea ecx, [esp + 0xe8]
call fcn.00427360
lea ecx, [esp + 0x220]
call fcn.00427360
lea ecx, [esp + 0x88]
call fcn.00427200
lea ecx, [esp + 0xb8]
call fcn.0043b3e0
lea ecx, [esp + 0x148]
call fcn.00427360
lea ecx, [esp + 0x1a8]
call fcn.00427360
lea ecx, [esp + 0x160]
call fcn.00427360
lea ecx, [esp + 0x70]
call fcn.00427360
lea ecx, [esp + 0x178]
call fcn.00427360
lea ecx, [esp + 0xa0]
call fcn.00427360
jmp 0x438467
push 0x5a4c70
push 1
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
push 0x5a4c80
push 0
sub esp, 0x18
mov ecx, esp
push 0x5a4534
call fcn.004274a0
call fcn.0042ee50
push eax
call fcn.0042eea0
add esp, 0x24
xor esi, esi
lea ecx, [esp + 0x118]
call fcn.00427360
lea ecx, [esp + 0x130]
call fcn.00427360
lea ecx, [esp + 0x100]
call fcn.00427360
lea ecx, [esp + 0xd0]
call fcn.00427360
lea ecx, [esp + 0x190]
call fcn.00427360
lea ecx, [esp + 0x1c0]
call fcn.00436cd0
mov ecx, dword [esp + 0x2cc]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0052a949
mov esp, ebp
pop ebp
ret 0x10