Function at 0x40f620
Capabilities:
Check if file exists
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x446433
mov eax, dword fs:[0]
push eax
sub esp, 0x34
mov eax, 0x12f4
call fcn.0043fce0
mov eax, dword [0x45d018]
xor eax, esp
mov dword [esp + 0x12f0], eax
push ebx
push esi
push edi
mov eax, dword [0x45d018]
xor eax, esp
push eax
lea eax, [esp + 0x1338]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
cmp dword [esi + 0xec], edi
mov dword [esp + 0x5c], esi
je 0x410b4c
lea ecx, [esp + 0xc0]
call sub.MFC80U.DLL_Ordinal_557
lea ecx, [esp + 0x2e4]
mov dword [esp + 0x1340], edi
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_void_
mov ecx, dword [esi + 0xec]
xor eax, eax
cmp ecx, edi
mov dword [esp + 0x4c], 0x44d5b8
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
je 0x40f6ce
lea eax, [ecx + 0xc]
mov dword [esp + 0x50], eax
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov byte [esp + 0x1340], 2
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
jmp 0x40f6f4
mov eax, dword [esp + 0x50]
test eax, eax
je 0x40f7d0
mov ecx, dword [esp + 0x54]
test ecx, ecx
mov esi, dword [eax + 4]
je 0x40f70b
cmp ecx, eax
je 0x40f715
mov edi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
call edi
jmp 0x40f71b
mov edi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp dword [esp + 0x58], esi
sete al
test al, al
jne 0x40f7d0
mov eax, dword [esp + 0x4c]
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x4c]
call edx
test al, al
je 0x40f73f
xor esi, esi
jmp 0x40f75e
cmp dword [esp + 0x54], 0
jne 0x40f748
call edi
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
cmp ecx, dword [eax + 4]
jne 0x40f757
call edi
mov edx, dword [esp + 0x58]
mov esi, dword [edx + 0x48]
mov eax, dword [esi]
mov edx, dword [eax + 0x2c]
mov ecx, esi
call edx
mov bl, al
mov eax, dword [esi]
mov edx, dword [eax + 0x64]
mov ecx, esi
call edx
test bl, bl
je 0x40f7ad
cmp eax, 0x1b
jge 0x40f7ad
mov eax, dword [esi]
mov edx, dword [eax + 0x54]
lea ecx, [esp + 0x2e4]
push ecx
mov ecx, esi
call edx
lea ecx, [esp + 0x2e4]
call sub.acdb17.dll_public:_wchar_t_const____thiscall_AdString::operator_wchar_t_const__void_const
push eax
mov eax, dword [esp + 0xcc]
push eax
lea ecx, [esp + 0xc8]
call sub.MFC80U.DLL_Ordinal_5712
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + 0xc]
lea ecx, [esp + 0x4c]
call eax
test al, al
jne 0x40f6f0
lea esi, [esp + 0x54]
call fcn.0042f5f0
jmp 0x40f6f0
cmp dword [esp + 0xc8], 0
mov bl, 4
jle 0x40f858
test byte [0x45daf4], bl
je 0x40f84b
mov ecx, dword [esp + 0x5c]
push ecx
lea edx, [esp + 0xc4]
push edx
push 0x45dac8
lea eax, [esp + 0x218]
push eax
call fcn.004120c0
lea ecx, [esp + 0x20c]
mov byte [esp + 0x1340], 3
call sub.MFC80U.DLL_Ordinal_2011
cmp eax, 2
mov byte [esp + 0x1340], 2
jne 0x40f836
lea ecx, [esp + 0x20c]
push ecx
call fcn.00414700
jmp 0x410b19
lea edx, [esp + 0x20c]
push edx
call fcn.00414700
test byte [0x45daf4], bl
jne 0x40f858
cmp dword [0x45dae0], 0
je 0x410b19
mov esi, dword [esp + 0x5c]
lea edi, [esi + 0x106]
xor eax, eax
mov dword [esp + 0x44], edi
mov ecx, 0x81
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, dword [esi + 0xec]
mov eax, dword [ecx]
mov edx, dword [eax + 0x9c]
call edx
mov ecx, dword [esi + 0xec]
mov edi, 1
push 0
mov dword [esi + 0x310], eax
mov dword [esi + 0x314], edi
mov eax, dword [ecx]
mov edx, dword [eax + 0x40]
push 0
push 0
mov dword [esp + 0x48], edi
call edx
test eax, eax
lea ecx, [esp + 0x2e4]
je 0x40f8c0
mov edx, dword [eax]
mov edx, dword [edx + 0x54]
push ecx
mov ecx, eax
call edx
jmp 0x40f8ca
push 0x448658
call sub.acdb17.dll_public:_class_AdString_const____thiscall_AdString::operator_wchar_t_const__
push 0x120
call sub.MFC80U.DLL_Ordinal_762
add esp, 4
mov dword [esp + 0x90], eax
test eax, eax
mov byte [esp + 0x1340], bl
je 0x40f8f3
push eax
call fcn.0041d4b0
mov esi, eax
jmp 0x40f8f5
xor esi, esi
test esi, esi
mov byte [esp + 0x1340], 2
lea ecx, [esp + 0x2e4]
je 0x410b20
push edi
call sub.acdb17.dll_public:_wchar_t_const____thiscall_AdString::operator_wchar_t_const__void_const
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx + 0x310]
mov ebx, eax
call fcn.0041d6e0
mov edi, dword [esp + 0x5c]
mov ecx, dword [edi + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x6c]
push 1
push 0
call eax
cmp byte [edi + 0xf0], 0
jne 0x40fa17
jmp 0x40f950
cmp byte [esi + 0x11c], 0
jne 0x40fa17
mov ecx, dword [edi + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x94]
call eax
test al, al
jne 0x40fa17
mov eax, dword [edi + 0x314]
cmp dword [esp + 0x3c], eax
je 0x40f9a3
mov edi, dword [edi + 0x310]
mov ebx, dword [esp + 0x44]
push eax
call fcn.0041d6e0
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx + 0x314]
mov dword [esp + 0x3c], edx
mov edi, ecx
jmp 0x40f9ab
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ebx, dword [sym.imp.acdb17.dll__PeekMessageW_20]
push 1
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x108]
push eax
call ebx
test eax, eax
je 0x40fa02
jmp 0x40f9d0
lea ecx, [esp + 0xf8]
push ecx
call dword [sym.imp.USER32.dll_TranslateMessage]
lea edx, [esp + 0xf8]
push edx
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 1
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x108]
push eax
call ebx
test eax, eax
jne 0x40f9d0
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [edi + 0xf0], 0
je 0x40f950
mov ecx, dword [edi + 0x314]
mov edi, dword [edi + 0x310]
mov ebx, dword [esp + 0x44]
push ecx
call fcn.0041d6e0
cmp byte [esi + 0x11c], 0
jne 0x40fa43
mov edx, dword [esp + 0x5c]
cmp byte [edx + 0xf0], 0
je 0x40fa57
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x98]
call eax
mov ebx, dword [esp + 0x5c]
mov ecx, dword [ebx + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x94]
call eax
test al, al
jne 0x40fa8c
nop
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebx + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x94]
call eax
test al, al
je 0x40fa70
mov edx, dword [esi]
mov eax, dword [edx + 4]
push 1
mov ecx, esi
call eax
cmp byte [ebx + 0xf0], 0
je 0x40faf7
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [esp + 0x1340], 5
mov ecx, dword [esp + 0x44]
push ecx
lea edx, [esp + 0x40]
push 0xf05e
push edx
call dword [sym.imp.MFC80U.DLL_Ordinal_2317]
mov eax, dword [esp + 0x48]
add esp, 0xc
push 0
push 0x10
push eax
call sub.MFC80U.DLL_Ordinal_1118
mov ecx, dword [ebx + 0x20]
push 0
push 0
push 0x12
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
lea ecx, [esp + 0x3c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
jmp 0x410b19
xor edi, edi
push edi
push edi
lea ecx, [ebx + 0x3d0]
call sub.MFC80U.DLL_Ordinal_3070
push eax
push 0x448f7c
call sub.MFC80U.DLL_Ordinal_1047
mov esi, eax
add esp, 8
mov dword [esp + 0x44], esi
mov byte [esp + 0x1340], 6
mov ecx, dword [ebx + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x80]
call eax
cmp eax, edi
mov dword [esp + 0x3c], eax
jne 0x40fb51
cmp esi, edi
mov byte [esp + 0x1340], 2
je 0x410b19
mov ecx, esi
jmp 0x410b12
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
push eax
lea eax, [esp + 0x24]
mov byte [esp + 0x1344], 7
call fcn.0042a8b0
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov byte [esp + 0x1340], 9
lea ecx, [esp + 0x320]
mov dword [esp + 0x48], edi
mov dword [esp + 0x30], edi
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_void_
mov byte [esp + 0x1340], 0xa
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x40fbc4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x24], esi
jbe 0x40fbd4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp ebx, esi
je 0x40fcdf
cmp ebx, dword [esp + 0x28]
jb 0x40fbe8
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebx]
lea esi, [esp + 0x194]
call fcn.0040ee50
push eax
lea ecx, [esp + 0x324]
mov byte [esp + 0x1344], 0xb
call sub.acdb17.dll_public:_class_AdString_const____thiscall_AdString::operator_class_AdString_const__
mov ecx, esi
mov byte [esp + 0x1340], 0xa
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
cmp ebx, dword [esp + 0x28]
jb 0x40fc26
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx]
cmp dword [ecx + 0xf4], edi
jne 0x40fc8d
cmp ebx, dword [esp + 0x28]
jb 0x40fc3c
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [ebx]
mov esi, dword [edx + 0x3c]
cmp esi, edi
je 0x40fccb
mov eax, dword [0x45d910]
cmp eax, edi
jne 0x40fc78
call sub.acdb17.dll_acrxSysRegistry
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.ClassDictionary
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.AdRmFileRef
call eax
mov dword [0x45d910], eax
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x40]
mov ecx, esi
call eax
test al, al
je 0x40fccb
add dword [esp + 0x48], 1
jmp 0x40fccb
add dword [esp + 0x30], 1
sub esp, 0x3c
lea edx, [esp + 0x35c]
mov ecx, esp
mov dword [esp + 0xcc], esp
push edx
lea esi, [esp + 0xac]
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_class_AdString_const__
call fcn.00411630
add esp, 0x3c
test al, al
jne 0x40fccb
lea eax, [esp + 0x320]
push eax
call fcn.004124d0
cmp ebx, dword [esp + 0x28]
jb 0x40fcd7
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add ebx, 4
jmp 0x40fbc4
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x40fcef
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
lea eax, [esp + 0x20]
mov edi, eax
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x24], esi
jbe 0x40fd05
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
test edi, edi
je 0x40fd11
lea ecx, [esp + 0x20]
cmp edi, ecx
je 0x40fd17
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp ebx, esi
je 0x40fe54
test edi, edi
jne 0x40fd29
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
cmp ebx, dword [edi + 8]
jb 0x40fd34
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [ebx]
mov esi, dword [edx + 0x3c]
test esi, esi
je 0x40fe41
mov eax, dword [0x45d910]
test eax, eax
jne 0x40fd70
call sub.acdb17.dll_acrxSysRegistry
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.ClassDictionary
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.AdRmFileRef
call eax
mov dword [0x45d910], eax
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x40]
mov ecx, esi
call eax
test al, al
je 0x40fe41
cmp ebx, dword [edi + 8]
jb 0x40fd8d
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [ebx]
lea esi, [esp + 0x1d0]
call fcn.0040ee50
push eax
lea ecx, [esp + 0x324]
mov byte [esp + 0x1344], 0xc
call sub.acdb17.dll_public:_class_AdString_const____thiscall_AdString::operator_class_AdString_const__
mov ecx, esi
mov byte [esp + 0x1340], 0xa
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
cmp ebx, dword [edi + 8]
jb 0x40fdca
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov ecx, dword [ebx]
cmp dword [ecx + 0xf4], 0
jne 0x40fe41
sub esp, 0x3c
lea edx, [esp + 0x35c]
mov ecx, esp
mov dword [esp + 0xcc], esp
push edx
lea esi, [esp + 0xbc]
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_class_AdString_const__
call fcn.00411630
add esp, 0x3c
test al, al
jne 0x40fe41
sub esp, 0x3c
lea eax, [esp + 0x35c]
mov ecx, esp
mov dword [esp + 0xcc], esp
push eax
lea esi, [esp + 0xac]
call sub.acdb17.dll_public:_void___thiscall_AdString::constructor_class_AdString_const__
call fcn.00411630
add esp, 0x3c
test al, al
jne 0x40fe41
lea ecx, [esp + 0x320]
push ecx
lea esi, [esp + 0x80]
call fcn.004124d0
cmp ebx, dword [edi + 8]
jb 0x40fe4c
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
add ebx, 4
jmp 0x40fcf5
mov eax, dword [esp + 0x80]
test eax, eax
jne 0x40fe63
xor ebx, ebx
jmp 0x40fe7f
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov eax, dword [esp + 0x70]
test eax, eax
mov dword [esp + 0xbc], ebx
jne 0x40fe92
xor esi, esi
jmp 0x40feab
mov ecx, dword [esp + 0x74]
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
lea ecx, [esp + 0x1c]
mov dword [esp + 0xa0], esi
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x40]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
xor eax, eax
cmp ebx, 1
setg al
mov byte [esp + 0x1340], 0xf
lea ecx, [esp + 0x34]
sub eax, 1
and eax, 0xffffffcd
add eax, 0xf04d
push eax
mov dword [esp + 0xa0], eax
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov edx, dword [esp + 0x34]
push ebx
mov ebx, dword [sym.imp.MFC80U.DLL_Ordinal_2311]
push edx
lea eax, [esp + 0x24]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC80U.DLL_Ordinal_896]
test esi, esi
jle 0x40ff64
xor edx, edx
cmp esi, 1
setg dl
lea ecx, [esp + 0x34]
sub edx, 1
and edx, 0xffffffcd
add edx, 0xf04e
push edx
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov eax, dword [esp + 0x34]
push esi
push eax
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC80U.DLL_Ordinal_896]
mov edi, dword [esp + 0x48]
xor eax, eax
cmp edi, 1
setg al
lea ecx, [esp + 0x34]
sub eax, 1
and eax, 0xffffffcd
add eax, 0xf04f
push eax
mov dword [esp + 0x94], eax
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov eax, dword [esp + 0x34]
push edi
push eax
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC80U.DLL_Ordinal_896]
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x40fff2
xor ecx, ecx
cmp eax, 1
setg cl
sub ecx, 1
and ecx, 0xffffffcd
add ecx, 0xf050
push ecx
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov edx, dword [esp + 0x34]
push esi
push edx
lea eax, [esp + 0x24]
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x44]
call dword [sym.imp.MFC80U.DLL_Ordinal_896]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x11c]
push ecx
call fcn.004116e0
lea ecx, [esp + 0x114]
mov byte [esp + 0x1340], 0x10
call sub.MFC80U.DLL_Ordinal_2011
mov edi, dword [esp + 0x5c]
cmp byte [edi + 0x557], 0
jne 0x410165
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp esi, eax
mov ebx, eax
jbe 0x410058
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp esi, eax
jbe 0x410058
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
cmp esi, ebx
je 0x410080
sub eax, ebx
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea edi, [esi + ecx]
jle 0x41007c
push ecx
push ebx
push ecx
push esi
call dword [sym.imp.MSVCR80.dll_memmove_s]
add esp, 0x10
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x3c]
call fcn.0042a7b0
mov byte [esp + 0x1340], 0xf
lea ecx, [esp + 0x188]
mov dword [esp + 0x114], 0x44a068
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x114]
call sub.MFC80U.DLL_Ordinal_605
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x40]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x320]
mov byte [esp + 0x1340], 9
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
mov byte [esp + 0x1340], 8
mov esi, dword [esp + 0x70]
xor edi, edi
cmp esi, edi
je 0x41011e
mov ebx, dword [esp + 0x74]
cmp esi, ebx
je 0x410115
mov edx, dword [esi]
mov eax, dword [edx]
push edi
mov ecx, esi
call eax
add esi, 0x3c
cmp esi, ebx
jne 0x410101
mov esi, dword [esp + 0x70]
push esi
call sub.MFC80U.DLL_Ordinal_764
add esp, 4
mov byte [esp + 0x1340], 7
mov esi, dword [esp + 0x80]
cmp esi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
je 0x410ad0
mov ebx, dword [esp + 0x84]
cmp esi, ebx
je 0x410ac7
mov edx, dword [esi]
mov eax, dword [edx]
push edi
mov ecx, esi
call eax
add esi, 0x3c
cmp esi, ebx
jne 0x410150
jmp 0x410ac0
lea ecx, [edi + 0x560]
push ecx
lea edx, [esp + 0x60]
lea esi, [edi + 0x55c]
push edx
mov ecx, esi
call fcn.004113e0
add esp, 8
push eax
mov ecx, esi
mov byte [esp + 0x1344], 0x11
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
lea ecx, [esp + 0x5c]
mov byte [esp + 0x1340], 0x10
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov eax, dword [esi]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne al
test al, al
jne 0x4102dd
push edi
call fcn.00410b70
test al, al
jne 0x4102dd
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
mov edi, eax
jbe 0x4101e4
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x24]
cmp ebx, eax
lea esi, [esp + 0x20]
jbe 0x4101f2
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
push edi
push esi
push ebx
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0xa0]
push eax
lea ebx, [esp + 0x34]
call fcn.00412580
mov eax, dword [esp + 0x3c]
call fcn.0042a7b0
mov byte [esp + 0x1340], 0xf
lea ecx, [esp + 0x188]
mov dword [esp + 0x114], 0x44a068
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x114]
call sub.MFC80U.DLL_Ordinal_605
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x40]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x320]
mov byte [esp + 0x1340], 9
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
lea ebx, [esp + 0x6c]
mov byte [esp + 0x1340], 8
call fcn.004126e0
lea ebx, [esp + 0x7c]
mov byte [esp + 0x1340], 7
call fcn.004126e0
mov eax, dword [esp + 0x24]
xor ebx, ebx
cmp eax, ebx
je 0x4102a7
push eax
call sub.MFC80U.DLL_Ordinal_764
add esp, 4
mov byte [esp + 0x1340], 2
mov ecx, dword [esp + 0x44]
cmp ecx, ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
je 0x4102ca
push 1
call fcn.00406510
mov byte [esp + 0x1340], bl
lea ecx, [esp + 0x2e4]
jmp 0x410b28
lea ecx, [esp + 0xa8]
call sub.MFC80U.DLL_Ordinal_556
lea ecx, [esp + 0xd4]
push ecx
mov byte [esp + 0x1344], 0x12
call fcn.0040ed60
lea edx, [esp + 0xd4]
push edx
mov byte [esp + 0x1344], 0x13
mov eax, dword [esi]
push 1
push eax
lea ecx, [esp + 0xb4]
call sub.MFC80U.DLL_Ordinal_5091
test eax, eax
jne 0x41045c
lea ecx, [esp + 0x48]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x5c]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
push 0xf038
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1344], 0x16
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
push 0
push 0x400
push 0x400
lea ecx, [esp + 0x68]
call dword [sym.imp.MFC80U.DLL_Ordinal_2460]
push eax
lea ecx, [esp + 0xe0]
call sub.MFC80U.DLL_Ordinal_2697
push 0xffffffffffffffff
lea ecx, [esp + 0x60]
call dword [sym.imp.MFC80U.DLL_Ordinal_5398]
mov eax, dword [esp + 0x5c]
mov esi, dword [esi]
mov ecx, dword [esp + 0x48]
push eax
push esi
push ecx
lea edx, [esp + 0x3c]
push edx
call ebx
mov eax, dword [esp + 0x40]
add esp, 0x10
push 0
push 0
push eax
call sub.MFC80U.DLL_Ordinal_1118
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
mov esi, eax
jbe 0x4103cc
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
mov ebx, ecx
jbe 0x4103dc
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov eax, dword [esp + 0x28]
cmp ebx, esi
je 0x410404
sub eax, esi
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea edi, [ebx + ecx]
jle 0x410400
push ecx
push esi
push ecx
push ebx
call dword [sym.imp.MSVCR80.dll_memmove_s]
add esp, 0x10
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x3c]
call fcn.0042a7b0
lea ecx, [esp + 0x30]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x5c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x48]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0xe4]
mov dword [esp + 0xd4], 0x449f00
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1340], 0x10
call sub.MFC80U.DLL_Ordinal_744
jmp 0x410214
mov edx, dword [esp + 0xa8]
mov eax, dword [edx + 0x30]
push 2
push 0
push 0
lea ecx, [esp + 0xb4]
call eax
lea ecx, [esp + 0x5c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea esi, [esp + 0x5c]
call fcn.004018b0
fst qword [esp + 0x5c]
sub esp, 8
lea edi, [esp + 0xf0]
fstp qword [esp]
call fcn.00401740
fld qword [esp + 0x64]
lea edi, [esp + 0x64]
fstp qword [esp]
call fcn.00401740
add esp, 8
lea edx, [esp + 0xe8]
push edx
mov eax, edi
push eax
push 0
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
push 0x64
lea ecx, [esp + 0x360]
push ecx
push 0
lea edx, [esp + 0xf4]
push edx
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
lea eax, [esp + 0x35c]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x4104f0
mov ecx, dword [0x449d88]
mov dx, word [0x449d8c]
mov dword [eax], ecx
mov word [eax + 4], dx
lea eax, [esp + 0x35c]
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x410520
sub eax, edx
push 0x64
sar eax, 1
lea eax, [esp + eax*2 + 0x360]
push eax
push 0
lea ecx, [esp + 0xf4]
push ecx
push 0
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
lea edi, [esp + 0x35c]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x410560
mov edx, dword [0x449d90]
lea ecx, [esp + 0x98]
mov dword [edi], edx
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
lea eax, [esp + 0x35c]
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1344], 0x18
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
push 0xf032
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x1c]
push ecx
push edx
lea eax, [esp + 0x40]
push eax
call ebx
mov ecx, dword [esp + 0x44]
add esp, 0xc
push ecx
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
push 0x449d94
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
mov edx, dword [esp + 0x9c]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov eax, dword [esp + 0xbc]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x40]
push edx
call ebx
mov eax, dword [esp + 0x44]
add esp, 0xc
push eax
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
mov esi, dword [esp + 0xa0]
test esi, esi
jle 0x410675
xor ecx, ecx
cmp esi, 1
setg cl
sub ecx, 1
and ecx, 0xffffffcd
add ecx, 0xf04e
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov edx, dword [esp + 0x1c]
push esi
push edx
lea eax, [esp + 0x40]
push eax
call ebx
mov ecx, dword [esp + 0x44]
add esp, 0xc
push ecx
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
mov edx, dword [esp + 0x90]
push edx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x40]
push edx
call ebx
mov eax, dword [esp + 0x44]
add esp, 0xc
push eax
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x4106f4
xor ecx, ecx
cmp esi, 1
setg cl
sub ecx, 1
and ecx, 0xffffffcd
add ecx, 0xf050
push ecx
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov edx, dword [esp + 0x1c]
push esi
push edx
lea eax, [esp + 0x40]
push eax
call ebx
mov ecx, dword [esp + 0x44]
add esp, 0xc
push ecx
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
lea ecx, [esp + 0x8c]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
push 0x449600
lea ecx, [esp + 0xac]
mov byte [esp + 0x1344], 0x19
call sub.MFC80U.DLL_Ordinal_6306
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x28]
jbe 0x41072a
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
lea eax, [esp + 0x20]
mov esi, eax
mov dword [esp + 0xa0], esi
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x24], eax
mov edi, dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov dword [esp + 0x90], eax
jbe 0x410750
call edi
test esi, esi
je 0x41075c
lea edx, [esp + 0x20]
cmp esi, edx
je 0x41075e
call edi
cmp ebx, dword [esp + 0x90]
je 0x41092d
test esi, esi
jne 0x410771
call edi
cmp ebx, dword [esi + 8]
jb 0x410778
call edi
mov ecx, dword [esp + 0xa0]
cmp ebx, dword [ecx + 8]
mov eax, dword [ebx]
mov esi, dword [eax + 0x3c]
jb 0x41078b
call edi
test esi, esi
mov edx, dword [ebx]
mov edi, dword [edx + 0xf4]
je 0x41090c
mov eax, dword [0x45d984]
test eax, eax
jne 0x4107ca
call sub.acdb17.dll_acrxSysRegistry
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.ClassDictionary
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.AdRmDoc
call eax
mov dword [0x45d984], eax
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x40]
mov ecx, esi
call eax
test al, al
je 0x4107dc
test edi, edi
jne 0x41081d
mov eax, dword [0x45d910]
test eax, eax
jne 0x41080b
call sub.acdb17.dll_acrxSysRegistry
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.ClassDictionary
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1c]
push str.AdRmFileRef
call eax
mov dword [0x45d910], eax
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x40]
mov ecx, esi
call eax
test al, al
je 0x41090c
push 0x449600
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
xor edi, edi
mov esi, 0x45d20c
mov ecx, dword [esi]
push ecx
lea ecx, [esp + 0x90]
call dword [sym.imp.MFC80U.DLL_Ordinal_4026]
mov edx, dword [esp + 0xa0]
cmp ebx, dword [edx + 8]
jb 0x410857
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov edx, dword [ebx]
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.00410fe0
add esp, 4
push 0x449d9c
lea ecx, [esp + 0x90]
mov byte [esp + 0x1344], 0x1a
call dword [sym.imp.MFC80U.DLL_Ordinal_899]
lea ecx, [esp + 0x30]
push ecx
lea edx, [esp + 0xa0]
push edx
lea ecx, [esp + 0x94]
call fcn.00412440
add esp, 8
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x1344], 0x1b
call dword [sym.imp.MFC80U.DLL_Ordinal_774]
lea ecx, [esp + 0x9c]
mov byte [esp + 0x1340], 0x1a
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
push 0x449600
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
lea ecx, [esp + 0x30]
mov byte [esp + 0x1340], 0x19
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
add esi, 0xc
add edi, 1
cmp esi, 0x45d260
jl 0x410835
mov ecx, dword [esp + 0xa0]
cmp ebx, dword [ecx + 8]
jb 0x41091e
call dword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov esi, dword [esp + 0xa0]
add ebx, 4
jmp 0x410737
push 0x449d94
lea ecx, [esp + 0xac]
call sub.MFC80U.DLL_Ordinal_6306
lea ecx, [esp + 0xa8]
call sub.MFC80U.DLL_Ordinal_1443
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp esi, eax
mov ebx, eax
jbe 0x41096c
call edi
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
cmp esi, eax
jbe 0x41096c
call edi
mov eax, dword [esp + 0x28]
cmp esi, ebx
je 0x410994
sub eax, ebx
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea edi, [esi + ecx]
jle 0x410990
push ecx
push ebx
push ecx
push esi
call dword [sym.imp.MSVCR80.dll_memmove_s]
add esp, 0x10
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x3c]
call fcn.0042a7b0
lea ecx, [esp + 0x8c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x38]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x98]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0xe4]
mov dword [esp + 0xd4], 0x449f00
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0xa8]
mov byte [esp + 0x1340], 0x10
call sub.MFC80U.DLL_Ordinal_744
mov byte [esp + 0x1340], 0xf
lea ecx, [esp + 0x188]
mov dword [esp + 0x114], 0x44a068
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x114]
call sub.MFC80U.DLL_Ordinal_605
lea ecx, [esp + 0x34]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x40]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea ecx, [esp + 0x320]
mov byte [esp + 0x1340], 9
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
mov byte [esp + 0x1340], 8
mov esi, dword [esp + 0x70]
xor edi, edi
cmp esi, edi
je 0x410a82
mov ebx, dword [esp + 0x74]
cmp esi, ebx
je 0x410a79
mov edx, dword [esi]
mov eax, dword [edx]
push edi
mov ecx, esi
call eax
add esi, 0x3c
cmp esi, ebx
jne 0x410a65
mov esi, dword [esp + 0x70]
push esi
call sub.MFC80U.DLL_Ordinal_764
add esp, 4
mov byte [esp + 0x1340], 7
mov esi, dword [esp + 0x80]
cmp esi, edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
je 0x410ad0
mov ebx, dword [esp + 0x84]
cmp esi, ebx
je 0x410ac7
lea esp, [esp]
mov edx, dword [esi]
mov eax, dword [edx]
push edi
mov ecx, esi
call eax
add esi, 0x3c
cmp esi, ebx
jne 0x410ab0
mov esi, dword [esp + 0x80]
push esi
call sub.MFC80U.DLL_Ordinal_764
add esp, 4
mov eax, dword [esp + 0x24]
cmp eax, edi
mov dword [esp + 0x88], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x80], edi
je 0x410af6
push eax
call sub.MFC80U.DLL_Ordinal_764
add esp, 4
mov byte [esp + 0x1340], 2
mov ecx, dword [esp + 0x44]
cmp ecx, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edi
je 0x410b19
push 1
call fcn.00406510
lea ecx, [esp + 0x2e4]
mov byte [esp + 0x1340], 0
mov dword [esp + 0x4c], 0x44d5b8
call sub.acdb17.dll_public_virtual:_void___thiscall_AdString::destructor_void_
lea ecx, [esp + 0xc0]
mov dword [esp + 0x1340], 0xffffffff
call sub.MFC80U.DLL_Ordinal_745
mov ecx, dword [esp + 0x1338]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x12f0]
xor ecx, esp
call fcn.0043f41f
mov esp, ebp
pop ebp
ret