Function at 0x40ab80
Capabilities:
Read .ini file

Disassembly:
mov eax, 0x12b4
call fcn.004420b0
mov eax, dword [0x4740f4]
xor eax, esp
mov dword [esp + 0x12b0], eax
push ebx
push ebp
push esi
push edi
push 0xfff
lea eax, [esp + 0x2c5]
mov esi, ecx
push 0
push eax
mov dword [esp + 0x1c], esi
mov byte [esp + 0x2cc], 0
call fcn.00440150
lea edx, [esi + 0x68]
mov eax, edx
add esp, 0xc
xor ebp, ebp
lea edi, [eax + 1]
jmp 0x40abd0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40abd0
sub eax, edi
je 0x40ac20
jmp 0x40abe0
cmp ebp, 0x100
jge 0x40ac05
inc ebp
add edx, 0x1ac
mov eax, edx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40abf4
sub eax, edi
jne 0x40abe0
cmp ebp, 0x100
jne 0x40ac20
push 0x30
push 0xea61
push 0xea75
call fcn.00410a20
add esp, 0xc
jmp 0x40afa9
push 0x54
lea ecx, [esp + 0x60]
push 0
push ecx
mov dword [esp + 0x64], 0
call fcn.00440150
add esp, 0xc
push 0x475698
push 0x104
lea edx, [esp + 0xb8]
push edx
push 0
push str.exportpath
push str.window
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [esp + 0x58]
lea eax, [esp + 0xb0]
lea ecx, [esp + 0x2c0]
push edx
mov dword [esp + 0x88], eax
mov dword [esp + 0x5c], 0x58
mov dword [esp + 0x68], str.DxWnd_export_file
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x1000
mov dword [esp + 0x90], 0x80200
mov dword [esp + 0x98], 0x45d7c0
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameA]
test eax, eax
je 0x40afa9
movzx eax, word [esp + 0x90]
cmp byte [esp + eax + 0x2bf], 0
je 0x40adb1
mov ecx, ebp
imul ecx, ecx, 0x264
mov edx, ebp
imul edx, edx, 0x1ac
lea ebx, [ecx + esi + 0x1ac64]
lea eax, [edx + esi + 0x64]
push ebx
push eax
lea edi, [esp + 0x2c8]
xor esi, esi
mov dword [esp + 0x1c], eax
call fcn.004062d0
add esp, 8
test eax, eax
je 0x40af8b
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x14]
sub esp, 0x1ac
mov ecx, 0x6b
mov edi, esp
mov dword [esp + 0x1c8], 3
mov dword [esp + 0x1cc], ebp
rep movsd dword es:[edi], dword [esi]
call fcn.00406a00
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0x20]
add esp, 0x1ac
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1007
push edx
mov dword [esp + 0x40], ebx
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x475698
push 1
push str.updatepaths
push str.window
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x40af8b
lea eax, [esp + 0x2c0]
push eax
call fcn.004054b0
add esp, 4
push 0x475698
lea ecx, [esp + 0x2c4]
push ecx
push str.exportpath
push str.window
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x40af8b
xor eax, eax
jmp 0x40adc0
mov cl, byte [esp + eax + 0x2c0]
mov byte [esp + eax + 0x1b8], cl
inc eax
test cl, cl
jne 0x40adc0
lea edi, [esp + 0x1b8]
dec edi
jmp 0x40ade0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40ade0
mov dx, word [0x45d7bc]
push 0x475698
push 1
push str.updatepaths
push str.window
mov word [edi], dx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x40ae2a
push 0x475698
lea eax, [esp + 0x1bc]
push eax
push str.exportpath
push str.window
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [esp + 0x2c0]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + eax + 0x2c1]
mov al, byte [edx]
mov dword [esp + 0x14], edx
test al, al
je 0x40af8f
mov ecx, ebp
imul ecx, ecx, 0x264
lea ecx, [ecx + esi + 0x1ac64]
mov dword [esp + 0x18], ecx
mov ecx, ebp
imul ecx, ecx, 0x1ac
lea ebx, [ecx + esi + 0x64]
jmp 0x40ae74
mov edx, dword [esp + 0x14]
test al, al
je 0x40af8b
cmp ebp, 0x100
je 0x40af77
xor eax, eax
lea ebx, [ebx]
mov cl, byte [esp + eax + 0x1b8]
mov byte [esp + eax + 0xb0], cl
inc eax
test cl, cl
jne 0x40ae90
mov eax, edx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40aea5
lea edi, [esp + 0xb0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40aeb6
mov ecx, eax
shr ecx, 2
mov esi, edx
mov edx, dword [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push edx
push ebx
lea edi, [esp + 0xb8]
xor esi, esi
call fcn.004062d0
add esp, 8
test eax, eax
je 0x40af58
mov dword [esp + 0x24], esi
sub esp, 0x1ac
mov ecx, 0x6b
mov esi, ebx
mov edi, esp
mov dword [esp + 0x1c8], 3
mov dword [esp + 0x1cc], ebp
rep movsd dword es:[edi], dword [esi]
call fcn.00406a00
mov ecx, dword [esp + 0x1bc]
mov edx, dword [ecx + 0x20]
mov esi, dword [esp + 0x1c4]
add esp, 0x1ac
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1007
push edx
mov dword [esp + 0x40], esi
call dword [sym.imp.USER32.dll_SendMessageA]
inc ebp
add ebx, 0x1ac
add esi, 0x264
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [esi + eax + 1]
mov dword [esp + 0x14], eax
mov al, byte [eax]
test al, al
jne 0x40ae70
jmp 0x40af8b
push 0x30
push 0xea61
push 0xea75
call fcn.00410a20
add esp, 0xc
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.0040a850
lea eax, [esi + 0x64]
push eax
call sub.dxwnd.dll_Ordinal_1
add esp, 4
mov dword [esi + 0x60], 1
mov ecx, dword [esp + 0x12c0]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0043fd57
add esp, 0x12b4
ret