Function at 0x4086b0
Capabilities:
Check if file exists
Check os version
Get file attributes
Get session user name

Disassembly:
sub esp, 0x734
push ebx
push esi
push edi
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x104
push eax
lea eax, [esp + 0x334]
mov ebx, ecx
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
test eax, eax
jne 0x4086e2
mov word [esp + 0x330], ax
push ebp
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0x114
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x28], 2
mov ebp, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
jne 0x408b16
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x408865
mov ecx, ebx
call fcn.00406dc0
test eax, eax
js 0x408856
push ebx
call ebp
cmp eax, 0xffffffff
je 0x408856
push ebx
call ebp
test al, 0x10
je 0x408856
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408740
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408773
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408760
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408776
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4087b0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4087e3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4087d0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4087f0
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408810
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x408b16
mov eax, dword [esp + 0x1c]
cmp eax, 4
jb 0x408b16
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x4089b6
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4089b6
push ebx
call ebp
test al, 0x10
je 0x4089b6
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4088a4
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4088d3
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4088c0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4088d6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408910
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408943
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408930
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x408950
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408970
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x408b16
cmp dword [esp + 0x1c], 4
jb 0x408b16
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x408b16
push ebx
call ebp
cmp eax, 0xffffffff
je 0x408b16
push ebx
call ebp
test al, 0x10
je 0x408b16
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408a00
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408a33
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408a20
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408a36
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408a70
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408aa3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408a90
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x408ab0
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408ad0
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x408c66
push ebx
call ebp
cmp eax, 0xffffffff
je 0x408c66
push ebx
call ebp
test al, 0x10
je 0x408c66
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408b50
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408b83
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408b70
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408b86
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408bc0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408bf3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408be0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x408c00
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408c20
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x408db6
push ebx
call ebp
cmp eax, 0xffffffff
je 0x408db6
push ebx
call ebp
test al, 0x10
je 0x408db6
mov ecx, ebx
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408ca0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408cd3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408cc0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408cd6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408d10
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408d43
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408d30
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x408d50
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408d70
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp word [0x57ed50], 0
jne 0x408dea
push 0x104
push 0x57ed50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push 0x57ed50
call fcn.0040e819
add esp, 8
test eax, eax
je 0x408dea
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x57ed50
mov edx, ebx
sub edx, ecx
mov dword [esp + 0x10], edx
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x408e00
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408e15
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408e43
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408e30
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408e46
mov eax, dword [str.SAVE_]
mov dword [ecx], eax
mov eax, dword [0x42fbb0]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbb4]
push ebx
mov dword [ecx + 8], eax
call ebp
cmp eax, 0xffffffff
je 0x408f96
push ebx
call ebp
test al, 0x10
je 0x408f96
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408e85
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408eb3
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408ea0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x408eb6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408ef0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x408f23
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x408f10
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x408f30
lea ecx, [esp + 0x12c]
add ecx, 0xfffffffe
nop word [eax + eax]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x408f50
mov eax, dword [str.Auto0.sav]
mov dword [ecx], eax
mov eax, dword [0x42fb9c]
mov dword [ecx + 4], eax
mov eax, dword [0x42fba0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fba4]
mov dword [ecx + 0xc], eax
mov eax, dword [0x42fba8]
mov dword [ecx + 0x10], eax
lea eax, [esp + 0x12c]
push eax
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x40937d
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x4090ec
mov ecx, ebx
call fcn.00406dc0
test eax, eax
js 0x4090dd
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4090dd
push ebx
call ebp
test al, 0x10
je 0x4090dd
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x408fe0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409013
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409000
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409016
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409050
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409083
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409070
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x409090
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4090b0
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x40937d
mov eax, dword [esp + 0x1c]
cmp eax, 4
jb 0x40937d
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x40922d
push ebx
call ebp
cmp eax, 0xffffffff
je 0x40922d
push ebx
call ebp
test al, 0x10
je 0x40922d
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409130
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409163
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409150
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409166
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4091a0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4091d3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4091c0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4091e0
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x409200
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x40937d
cmp dword [esp + 0x1c], 4
jb 0x40937d
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x40937d
push ebx
call ebp
cmp eax, 0xffffffff
je 0x40937d
push ebx
call ebp
test al, 0x10
je 0x40937d
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409277
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4092a4
lea edi, [ebx - 2]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409291
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
nop word [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4092b0
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4092f0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409323
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409310
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x409330
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x409350
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x4094ad
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4094ad
push ebx
call ebp
test al, 0x10
je 0x4094ad
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4093b3
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4093e3
lea edi, [ebx - 2]
nop dword [eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4093d0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4093e6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409420
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409453
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409440
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x409460
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x409480
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x4095dd
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4095dd
push ebx
call ebp
test al, 0x10
je 0x4095dd
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4094e1
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409513
lea edi, [ebx - 2]
nop dword [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409500
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409516
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409550
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409583
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409570
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x409590
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4095b0
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
cmp word [0x57ed50], 0
jne 0x409611
push 0x104
push 0x57ed50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push 0x57ed50
call fcn.0040e819
add esp, 8
test eax, eax
je 0x409611
xor ecx, ecx
mov word [eax], cx
mov esi, dword [esp + 0x10]
mov ecx, 0x57ed50
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + esi - 2], ax
test ax, ax
jne 0x409620
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409635
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409663
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409650
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409666
mov eax, dword [str.SAVE_]
mov dword [ecx], eax
mov eax, dword [0x42fbb0]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbb4]
mov dword [ecx + 8], eax
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409690
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x4096c3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4096b0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409771
push ebx
call ebp
test al, 0x10
je 0x409771
mov ecx, ebx
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4096e0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409713
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409700
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x12c]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x409720
lea edi, [esp + 0x12c]
add edi, 0xfffffffe
nop word [eax + eax]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x409740
mov ecx, 6
lea eax, [esp + 0x12c]
mov esi, str.ed6_win2.ini
rep movsd dword es:[edi], dword [esi]
push eax
movsw word es:[edi], word [esi]
call ebp
cmp eax, 0xffffffff
jne 0x409e99
mov esi, dword [esp + 0x10]
cmp dword [esp + 0x28], 2
jne 0x4098b1
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x4097e2
mov ecx, ebx
call fcn.00406dc0
test eax, eax
js 0x4097d3
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4097d3
push ebx
call ebp
test al, 0x10
je 0x4097d3
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4097a4
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409973
lea edi, [ebx - 2]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4097c2
jmp 0x40996c
cmp dword [esp + 0x28], 2
jne 0x4098b1
mov eax, dword [esp + 0x1c]
cmp eax, 4
jb 0x4098b1
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x409844
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409844
push ebx
call ebp
test al, 0x10
je 0x409844
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409815
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409973
lea edi, [ebx - 2]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409833
jmp 0x40996c
cmp dword [esp + 0x28], 2
jne 0x4098b1
cmp dword [esp + 0x1c], 4
jb 0x4098b1
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x4098b1
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4098b1
push ebx
call ebp
test al, 0x10
je 0x4098b1
mov ecx, ebx
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409880
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409973
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x4098a0
jmp 0x40996c
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x40990e
push ebx
call ebp
cmp eax, 0xffffffff
je 0x40990e
push ebx
call ebp
test al, 0x10
je 0x40990e
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4098e0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409973
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409900
jmp 0x40996c
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x4099b0
push ebx
call ebp
cmp eax, 0xffffffff
je 0x4099b0
push ebx
call ebp
test al, 0x10
je 0x4099b0
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409942
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409973
lea edi, [ebx - 2]
nop dword [eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409960
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409976
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
jmp 0x409e99
cmp word [0x57ed50], 0
jne 0x4099e4
push 0x104
push 0x57ed50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push 0x57ed50
call fcn.0040e819
add esp, 8
test eax, eax
je 0x4099e4
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x57ed50
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [esi + ecx - 2], ax
test ax, ax
jne 0x4099f0
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409a05
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409a33
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409a20
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x409a36
mov eax, dword [str.SAVE_]
mov dword [ecx], eax
mov eax, dword [0x42fbb0]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbb4]
push ebx
mov dword [ecx + 8], eax
call ebp
cmp eax, 0xffffffff
je 0x409a6c
push ebx
call ebp
test al, 0x10
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x409c89
mov eax, dword [esp + 0x1c]
cmp eax, 6
jb 0x409b38
mov ecx, ebx
call fcn.00406dc0
test eax, eax
js 0x409b29
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409aa0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409ad3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409ac0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409ad6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409b29
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409b29
push ebx
call ebp
test al, 0x10
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x409c89
mov eax, dword [esp + 0x1c]
cmp eax, 4
jb 0x409c89
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x409bcf
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409b60
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409b93
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409b80
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409b96
mov eax, dword [0x42fb90]
mov dword [ecx], eax
mov eax, dword [0x42fb94]
mov dword [ecx + 4], eax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409bcf
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409bcf
push ebx
call ebp
test al, 0x10
jne 0x409e99
cmp dword [esp + 0x28], 2
jne 0x409c89
cmp dword [esp + 0x1c], 4
jb 0x409c89
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406c40
add esp, 4
test eax, eax
js 0x409c89
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409c02
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409c33
lea edi, [ebx - 2]
nop dword [eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409c20
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409c36
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409c89
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409c89
push ebx
call ebp
test al, 0x10
jne 0x409e99
push ecx
lea edx, [esp + 0x338]
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x409d39
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409cb0
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409ce3
lea edi, [ebx - 2]
nop word [eax + eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409cd0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409ce6
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409d39
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409d39
push ebx
call ebp
test al, 0x10
jne 0x409e99
push ecx
mov edx, 0x42df80
mov ecx, ebx
call fcn.00406b60
add esp, 4
test eax, eax
js 0x409dd9
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409d56
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409d83
lea edi, [ebx - 2]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409d70
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409d86
mov eax, dword [str.ED_SORA2]
mov dword [ecx], eax
mov eax, dword [0x42fbbc]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbc0]
mov dword [ecx + 8], eax
mov eax, dword [0x42fbc4]
mov dword [ecx + 0xc], eax
mov ax, word [0x42fbc8]
mov word [ecx + 0x10], ax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409dd9
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409dd9
push ebx
call ebp
test al, 0x10
jne 0x409e99
cmp word [0x57ed50], 0
jne 0x409e0d
push 0x104
push 0x57ed50
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
push 0x57ed50
call fcn.0040e819
add esp, 8
test eax, eax
je 0x409e0d
xor ecx, ecx
mov word [eax], cx
mov ecx, 0x57ed50
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [esi + ecx - 2], ax
test ax, ax
jne 0x409e12
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409e27
sub ecx, edx
sar ecx, 1
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409e54
lea edi, [ebx - 2]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409e41
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea ecx, [ebx - 2]
nop word [eax + eax]
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x409e60
mov eax, dword [str.SAVE_]
mov dword [ecx], eax
mov eax, dword [0x42fbb0]
mov dword [ecx + 4], eax
mov eax, dword [0x42fbb4]
mov dword [ecx + 8], eax
mov ecx, ebx
call fcn.00406a80
test eax, eax
js 0x409e99
push ebx
call ebp
cmp eax, 0xffffffff
je 0x409e99
push ebx
call ebp
mov ecx, ebx
pop ebp
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409ea0
sub ecx, edx
sar ecx, 1
test ecx, ecx
jle 0x409ed3
cmp word [ebx + ecx*2 - 2], 0x5c
je 0x409ed3
lea edi, [ebx - 2]
nop
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x409ec0
mov eax, dword [0x42ee1c]
mov dword [edi], eax
lea edx, [esp + 0x538]
mov ecx, ebx
sub edx, ebx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x409ee0
lea eax, [esp + 0x538]
push 0x5c
push eax
call fcn.0040e819
add esp, 8
test eax, eax
je 0x409f10
xor ecx, ecx
mov word [eax], cx
nop dword [eax + eax]
xor ecx, ecx
movzx eax, word [ecx + str.ed6_win2.ini]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x536], ax
test ax, ax
jne 0x409f12
lea edx, [esp + 0x538]
mov esi, edx
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x409f32
sub edx, esi
add ebx, 0xfffffffe
mov ax, word [ebx + 2]
add ebx, 2
test ax, ax
jne 0x409f42
mov ecx, edx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
pop ebx
add esp, 0x734
ret