Function at 0x452540
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4ae4a7
mov eax, dword fs:[0]
push eax
sub esp, 0x158
push ebx
push esi
push edi
mov eax, dword [0x4f3168]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], 0
mov eax, dword [eax]
sub eax, 0x10
push eax
call fcn.00402420
lea esi, [eax + 0x10]
add esp, 4
mov dword [ebp - 0x18], esi
mov ecx, dword [esi - 0xc]
mov dword [ebp - 4], 0
test ecx, ecx
jle 0x4525be
lea eax, [ecx - 1]
test eax, eax
js 0x452952
cmp eax, ecx
jg 0x452952
cmp word [esi + eax*2], 0x5c
je 0x4525be
push 0x5c
lea ecx, [ebp - 0x18]
call fcn.004020b0
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x10]
push eax
call fcn.004165f0
add esp, 4
mov eax, dword [ebp - 0x10]
mov byte [ebp - 4], 1
mov edx, dword [eax - 0xc]
test edx, edx
jle 0x4525fc
lea ecx, [edx - 1]
test ecx, ecx
js 0x452952
cmp ecx, edx
jg 0x452952
cmp word [eax + ecx*2], 0x5c
je 0x4525fc
push 0x5c
lea ecx, [ebp - 0x10]
call fcn.004020b0
push 5
push 0x4c6e30
lea ecx, [ebp - 0x10]
call fcn.00402200
push 0
lea ecx, [ebp - 0x74]
call fcn.0044d0f0
push str.OPTIONS.INI
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp + 8]
push eax
mov byte [ebp - 4], 2
call fcn.00401ea0
add esp, 0xc
push dword [eax]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 3
call fcn.0044e5d0
mov edx, dword [ebp + 8]
add edx, 0xfffffff0
or ebx, 0xffffffff
mov byte [ebp - 4], 2
lea ecx, [edx + 0xc]
mov eax, ebx
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x45265f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x4f2efc]
mov ecx, 0x4f2efc
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov eax, dword [0x4f2efc]
mov ecx, 0x4f2efc
mov byte [ebp - 4], 4
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
push 0
lea eax, [ebp - 0x1c]
push eax
push 0x4c6e3c
push str.EUDC
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 5
call fcn.0044d8c0
mov eax, dword [ebp - 0x1c]
mov edi, dword [0x4b42d0]
cmp dword [eax - 0xc], 0
je 0x4526dc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00413e30
add esp, 0xc
push dword [eax]
mov ecx, 1
mov dword [ebp - 0x14], ecx
call edi
mov byte [ebp + 0xb], 0
test eax, eax
jne 0x4526e0
mov byte [ebp + 0xb], 1
mov eax, dword [ebp - 0x14]
test al, 1
je 0x452709
mov edx, dword [ebp - 0x34]
and eax, 0xfffffffe
add edx, 0xfffffff0
mov dword [ebp - 0x14], eax
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x452709
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp + 0xb], 0
jne 0x4529cc
push 0
lea eax, [ebp - 0x20]
push eax
push 0x4c6e50
push str.EUDC
lea ecx, [ebp - 0x74]
call fcn.0044d8c0
mov eax, dword [ebp - 0x1c]
cmp dword [eax - 0xc], 0
je 0x452758
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.00413e30
or dword [ebp - 0x14], 2
add esp, 0xc
push dword [eax]
call edi
mov byte [ebp + 0xb], 0
test eax, eax
jne 0x45275c
mov byte [ebp + 0xb], 1
mov ecx, dword [ebp - 0x14]
test cl, 2
je 0x452780
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
mov ecx, ebx
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x452780
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp byte [ebp + 0xb], 0
jne 0x4529cc
push str.QQPYEUDC.TTE
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00401ea0
push str.QQPYEUDC.EUF
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 4], 6
call fcn.00401ea0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 7
call fcn.00413e30
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 8
call fcn.00413e30
push str.EUDC_MERGE.TTE
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x24]
push eax
mov byte [ebp - 4], 9
call fcn.00401ea0
push str.EUDC_MERGE.EUF
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xa
call fcn.00401ea0
add esp, 0x48
lea ecx, [ebp - 0x164]
call fcn.0044fb40
lea ecx, [ebp - 0x114]
call fcn.0044fb40
lea ecx, [ebp - 0xc4]
call fcn.0044fb40
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0xc
call fcn.00454140
test al, al
jne 0x45295c
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0xe
call fcn.00453700
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0xd
call fcn.00453700
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0xb
call fcn.00453700
mov byte [ebp + 0xb], 0
mov edx, dword [ebp - 0x28]
add edx, 0xfffffff0
mov byte [ebp - 4], 0xa
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4528ac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x24]
add edx, 0xfffffff0
mov byte [ebp - 4], 9
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4528cc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4528ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x3c]
add edx, 0xfffffff0
mov byte [ebp - 4], 7
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45290c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
mov byte [ebp - 4], 6
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x45292c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
mov byte [ebp - 4], 5
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4529d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4529d0
push 0x80070057
call fcn.00402400
lea ecx, [ebp - 0xc4]
mov byte [ebp - 4], 0x10
call fcn.00453700
lea ecx, [ebp - 0x114]
mov byte [ebp - 4], 0xf
call fcn.00453700
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0xb
call fcn.00453700
mov edi, dword [0x4b4228]
push 0
push dword [ebp - 0x30]
push dword [ebp - 0x24]
call edi
test eax, eax
je 0x452888
push 0
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
call edi
test eax, eax
je 0x452888
push dword [ebp - 0x24]
mov edi, dword [0x4b422c]
call edi
push dword [ebp - 0x28]
call edi
mov byte [ebp + 0xb], 1
jmp 0x45288c
mov byte [ebp + 0xb], 1
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
mov byte [ebp - 4], 4
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4529f0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x452a10
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.0044d300
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
mov byte [ebp - 4], 0
lea eax, [edx + 0xc]
mov ecx, ebx
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x452a3c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ebx
dec ebx
test ebx, ebx
jg 0x452a5a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov al, byte [ebp + 0xb]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret