Function at 0x40a4c0
Capabilities:
Read .ini file
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x438f42
mov eax, dword fs:[0]
push eax
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x449af0]
xor eax, esp
push eax
lea eax, [esp + 0x70]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x80]
xor ebp, ebp
mov dword [esp + 0x18], ebp
mov eax, dword [0x44e610]
add eax, 0xfffffff0
push eax
mov dword [esp + 0x3c], ebp
call fcn.00401f40
lea edi, [eax + 0x10]
add esp, 4
mov dword [esp + 0x44], edi
push edi
push ebp
push str.Count
push str.FilesCount
mov dword [esp + 0x88], ebp
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ebp
push ebp
mov esi, eax
mov eax, dword [ebx + 0x144]
push 0x402
push eax
mov dword [esp + 0x60], esi
call dword [sym.imp.USER32.dll_SendMessageA]
cmp esi, ebp
mov dword [esp + 0x34], ebp
jle 0x40acff
mov ecx, ebp
jmp 0x40a55a
mov ebx, dword [esp + 0x80]
cmp esi, 0x64
jge 0x40a56f
mov eax, 0x64
cdq
idiv esi
mov dword [ebx + 0x1f4], eax
jmp 0x40a579
mov dword [ebx + 0x1f4], 1
cmp esi, 0x64
jle 0x40a59d
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov eax, edx
shr eax, 0x1f
lea edi, [edx + eax + 1]
mov eax, ecx
cdq
idiv edi
test edx, edx
je 0x40a5a3
cmp esi, 0x64
jge 0x40a694
call fcn.0041259b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40ad3d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x2c], eax
push 0
push 0
mov byte [esp + 0x80], 1
mov ecx, dword [ebx + 0x144]
push 0x408
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
push eax
lea edx, [esp + 0x30]
push 0x4404b0
push edx
call fcn.00405d50
mov eax, dword [esp + 0x38]
mov esi, dword [ebx + 0x190]
lea ebp, [ebx + 0x190]
lea edi, [eax - 0x10]
sub esi, 0x10
add esp, 0xc
cmp edi, esi
je 0x40a663
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x40a650
mov ecx, dword [edi]
cmp ecx, dword [esi]
jne 0x40a650
push edi
call fcn.00401f40
add esp, 4
mov dword [esp + 0x28], eax
or edx, 0xffffffff
lock xadd dword [ebx], edx
dec edx
test edx, edx
jg 0x40a644
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov eax, dword [esp + 0x28]
add eax, 0x10
mov dword [ebp], eax
jmp 0x40a65c
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebp
call fcn.00402080
mov ebx, dword [esp + 0x80]
mov ecx, dword [ebx + 0x20]
push 0
push 0
push 0xc04
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov byte [esp + 0x78], 0
lea edx, [edi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x40a694
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
push 0x43f1c0
lea ecx, [esp + 0x34]
call fcn.00403ce0
mov ecx, dword [esp + 0x34]
push ecx
lea edx, [esp + 0x34]
push str.FileName_d
push edx
mov byte [esp + 0x84], 2
call fcn.00405d50
add esp, 0xc
push 0x43f1c0
lea ecx, [esp + 0x20]
call fcn.00403ce0
mov byte [esp + 0x78], 3
mov edx, dword [esp + 0x1c]
mov eax, dword [edx - 8]
mov ecx, 1
sub ecx, dword [edx - 4]
sub eax, 0x104
or eax, ecx
jge 0x40a6fe
push 0x104
lea ecx, [esp + 0x20]
call fcn.004021f0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
push eax
push 0x104
push edx
push 0x43f1c0
push ecx
push str.FilesName
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
jbe 0x40ac9a
mov edx, dword [esp + 0x84]
mov esi, dword [edx]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
sub esi, 0x10
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x40a756
cmp eax, dword [esi]
jne 0x40a756
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40a78c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x40ad47
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
add eax, 1
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00422203
add esp, 0x10
add edi, 0x10
mov dword [esp + 0x20], edi
mov byte [esp + 0x78], 4
mov edx, dword [esp + 0x1c]
push edx
lea edi, [esp + 0x24]
call fcn.0040ecc0
mov esi, dword [0x44e618]
mov ecx, dword [esi - 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
add esi, 0xfffffff0
add esp, 4
call edx
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x40a7d6
cmp eax, dword [esi]
jne 0x40a7d6
mov edi, esi
mov eax, 1
lock xadd dword [ecx], eax
jmp 0x40a80c
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x40ad47
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
add eax, 1
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.00422203
add esp, 0x10
add edi, 0x10
mov dword [esp + 0x24], edi
mov byte [esp + 0x78], 5
mov edx, dword [esp + 0x1c]
push edx
lea edi, [esp + 0x28]
call fcn.0040ecc0
add esp, 4
lea ecx, [esp + 0x58]
call fcn.0041d7e2
mov byte [esp + 0x78], 6
mov esi, dword [esp + 0x24]
push 0
push esi
lea ecx, [esp + 0x60]
call fcn.0041d86e
test eax, eax
jne 0x40a88b
lea ecx, [esp + 0x58]
mov byte [esp + 0x78], 5
call fcn.0041d806
lea eax, [esi - 0x10]
mov byte [esp + 0x78], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40a87a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x78], 3
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
jmp 0x40ac81
push 4
call fcn.00412566
add esp, 4
test eax, eax
je 0x40a8d5
push 0x4404ec
lea ecx, [esp + 0x40]
mov dword [eax], vtable.CFileProc.0
mov dword [esp + 0x30], eax
call fcn.00403ce0
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x7c], 7
or dword [esp + 0x1c], 1
lea ecx, [esp + 0x24]
lea edx, [esp + 0x28]
call fcn.0040f280
test eax, eax
je 0x40a8dd
mov bl, 1
jmp 0x40a8df
mov dword [esp + 0x2c], 0
xor bl, bl
mov dword [esp + 0x78], 6
test byte [esp + 0x18], 1
je 0x40a913
mov eax, dword [esp + 0x3c]
and dword [esp + 0x18], 0xfffffffe
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40a913
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0041259b
xor ecx, ecx
test bl, bl
je 0x40a9ac
test eax, eax
setne cl
test ecx, ecx
je 0x40ad3d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x78], 8
mov ebp, dword [esp + 0x20]
push ebp
lea ecx, [esp + 0x3c]
push 0x4404f8
push ecx
call fcn.00405d50
add esp, 0xc
call fcn.0040f8f0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x43f1fc
call fcn.00403ce0
mov byte [esp + 0x7c], 9
mov esi, dword [esp + 0x3c]
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x5c], esp
mov edi, esp
push esi
call fcn.00401f40
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x80], 8
call fcn.0040fb30
mov dword [esp + 0x40], 1
jmp 0x40aa31
test eax, eax
setne cl
test ecx, ecx
je 0x40ad3d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x78], 0xa
mov ebp, dword [esp + 0x20]
push ebp
lea ecx, [esp + 0x3c]
push 0x44050c
push ecx
call fcn.00405d50
add esp, 0xc
call fcn.0040f8f0
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 0x43f1fc
call fcn.00403ce0
mov byte [esp + 0x7c], 0xb
mov esi, dword [esp + 0x3c]
push ecx
add esi, 0xfffffff0
mov dword [esp + 0x30], esp
mov edi, esp
push esi
call fcn.00401f40
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [esp + 0x80], 0xa
call fcn.0040fb30
mov dword [esp + 0x40], 0
or eax, 0xffffffff
lea edx, [esi + 0xc]
mov byte [esp + 0x80], 6
add esp, 8
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x40aa55
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
call fcn.0041259b
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40ad3d
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
push str.ESales_binAntennaXSLFormatterV2AXFO.dll
lea ecx, [esp + 0x4c]
push 0x44e618
push ecx
mov byte [esp + 0x84], 0xc
call fcn.004039e0
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x7c], 0xd
call fcn.00402000
mov byte [esp + 0x78], 0xc
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40aacc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x40ad3d
mov edi, dword [esp + 0x24]
push eax
push edi
call fcn.00422b0f
add esp, 8
test eax, eax
sete al
test al, al
je 0x40ab18
push ecx
lea eax, [edi - 0x10]
mov dword [esp + 0x58], esp
mov esi, esp
push eax
call fcn.00401f40
mov ecx, dword [esp + 0x34]
add esp, 4
add eax, 0x10
push ecx
mov dword [esi], eax
call fcn.0040b120
push str.ESales_binESalesUpdate.exe
lea edx, [esp + 0x50]
push 0x44e618
push edx
call fcn.004039e0
add esp, 0xc
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x7c], 0xe
call fcn.00402000
mov byte [esp + 0x78], 0xc
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ab63
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x28]
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x40ad3d
push esi
push edi
call fcn.00422b0f
add esp, 8
test eax, eax
sete al
test al, al
je 0x40abd3
mov ecx, dword [esp + 0x80]
push ecx
call fcn.0040ad50
test eax, eax
je 0x40abd3
cmp dword [esp + 0x2c], 0
je 0x40abd3
push 0x4404ec
lea ecx, [esp + 0x44]
call fcn.00403ce0
lea edx, [esp + 0x40]
push edx
mov byte [esp + 0x7c], 0xf
or dword [esp + 0x1c], 2
lea ecx, [esp + 0x24]
lea edx, [esp + 0x28]
call fcn.0040f280
test eax, eax
je 0x40abd3
mov bl, 1
jmp 0x40abd5
xor bl, bl
mov dword [esp + 0x78], 0xc
test byte [esp + 0x18], 2
je 0x40ac09
mov eax, dword [esp + 0x40]
and dword [esp + 0x18], 0xfffffffd
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac09
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x40ac15
mov dword [esp + 0x38], 1
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x40ac25
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
lea eax, [esi - 0x10]
mov byte [esp + 0x78], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac46
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x58]
mov byte [esp + 0x78], 5
call fcn.0041d806
mov byte [esp + 0x78], 4
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac79
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x78], 3
lea eax, [ebp - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ac9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x78], 2
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40acbf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x78], 0
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ace4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x34]
mov esi, dword [esp + 0x50]
add ecx, 1
cmp ecx, esi
mov dword [esp + 0x34], ecx
jl 0x40a553
mov edi, dword [esp + 0x44]
lea eax, [edi - 0x10]
mov dword [esp + 0x78], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40ad23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x70]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 8
push 0x80004005
call fcn.00401ed0
call fcn.00401fb0
int3