Function at 0x442090
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x5c
mov eax, dword [0x4da6bc]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 4]
push edi
push eax
call fcn.00437480
mov ecx, dword [0x5144c4]
mov edi, dword [0x5144c8]
mov ebx, dword [sym.imp.KERNEL32.dll_InterlockedExchange]
add esp, 4
push ecx
push 0x5144c8
mov dword [esp + 0x2c], edi
call ebx
mov edx, dword [esi + 4]
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x4b1
push edx
call ebp
push 1
push 0x12d
push eax
call fcn.004371f0
mov eax, dword [esi + 4]
add esp, 0xc
push 0x4b0
push eax
call ebp
push 1
push 0x132
push eax
call fcn.004371f0
add esp, 0xc
push edi
push 0x5144c8
call ebx
mov ecx, dword [esi + 4]
push 0x4b1
push ecx
call ebp
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0xfa
mov ebx, eax
push 0x160
push ebx
call edi
push str.UTF_8BOM
push 2
push 0x14a
push ebx
call edi
push 1
push eax
push 0x151
push ebx
call edi
mov edx, dword [esi + 4]
push 0x4bd
push edx
call ebp
mov dword [esp + 0x18], eax
mov ebx, 0x3ad0
mov ecx, dword [0x5144c8]
push 0x20
lea eax, [esp + 0x2c]
push eax
push ebx
push ecx
call dword [sym.imp.USER32.dll_LoadStringW]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x28]
push edx
push 0
push 0x143
push eax
call edi
mov edx, dword [esp + 0x18]
lea ecx, [ebx - 0x3ad0]
push ecx
push eax
push 0x151
push edx
call edi
inc ebx
cmp ebx, 0x3ad2
jle 0x442152
mov eax, dword [esi + 4]
push 0x4bf
push eax
call ebp
mov edx, dword [0x514540]
mov ebp, eax
mov eax, dword [edx + 0xc]
mov ecx, 0x514540
call eax
mov ecx, dword [0x5144c8]
push 0x145
add eax, 0x10
push ecx
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_LoadMenuW]
push eax
mov dword [esp + 0x14], eax
xor ebx, ebx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
test eax, eax
jle 0x44221d
mov edi, edi
push 0x400
lea edx, [esp + 0x18]
push edx
push ebx
lea ecx, [esp + 0x1c]
call fcn.00419bd0
mov eax, dword [esp + 0x14]
push eax
push 0
push 0x143
push ebp
call edi
inc ebx
push ebx
push eax
push 0x151
push ebp
call edi
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
cmp ebx, eax
jl 0x4421e0
call fcn.00403350
mov ebp, eax
push ebp
push 0xbc614e
push str.DefaultFileFormat
push str.Setting
lea ebx, [esi + 0x54]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [ebx], eax
cmp eax, 0xbc614e
jne 0x44224c
mov dword [ebx], 1
push ebp
push 0xbc614e
push str.DefaultEncoding
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esi + 0x58], eax
cmp eax, 0xbc614e
jne 0x442273
mov dword [esi + 0x58], 0
push ebp
push 0xbc614e
push str.ReloadMethod
push str.Setting
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov dword [esi + 0x60], eax
cmp eax, 0xbc614e
jne 0x44229a
mov dword [esi + 0x60], 0
push ebp
push 2
lea ecx, [esp + 0x24]
push ecx
push 0x4ba190
push str.NewFileOnStartup
xor edx, edx
xor eax, eax
push str.Setting
mov word [esp + 0x34], dx
mov word [esp + 0x36], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
movzx eax, word [esp + 0x1c]
add eax, 0xffffffd0
cmp eax, 0x49
ja case.0x4422d9.48
movzx edx, byte [eax + 0x44248c]
jmp dword [edx*4 + 0x442480]
mov al, 1
jmp 0x4422e6
xor al, al
mov byte [esi + 0x65], al
mov al, byte [0x513f40]
mov byte [esi + 0x64], al
mov eax, dword [ebx]
cmp eax, 1
je 0x442308
cmp eax, 2
je 0x442308
cmp eax, 3
je 0x442308
mov dword [ebx], 1
cmp dword [esi + 0x58], 0xffff
jb 0x442318
mov dword [esi + 0x58], 0
mov ecx, dword [0x4d6678]
push 0
lea ebp, [esi + 0x5c]
push ebx
mov dword [ebp], ecx
push 0x4b0
mov ecx, ebx
call fcn.004419b0
push 0
lea eax, [esi + 0x58]
push eax
push 0x4b1
mov ecx, ebx
call fcn.004419b0
push 0
lea eax, [esi + 0x60]
push eax
push 0x4bd
mov ecx, ebx
call fcn.004419b0
push 0
push ebp
push 0x4bf
mov ecx, ebx
call fcn.004419b0
xor edx, edx
cmp byte [esi + 0x64], dl
setne dl
mov ebp, edx
test ebx, ebx
je 0x442379
lea eax, [ebx - 0x54]
jmp 0x44237b
xor eax, eax
mov eax, dword [eax + 4]
push 0x4b7
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
test ebp, ebp
jl 0x442393
cmp ebp, 2
jle 0x442395
xor ebp, ebp
push 0
push ebp
push 0xf1
push eax
call edi
xor ecx, ecx
cmp byte [0x4d938c], cl
setne cl
mov ebp, ecx
test ebx, ebx
je 0x4423b6
lea eax, [ebx - 0x54]
jmp 0x4423b8
xor eax, eax
mov edx, dword [eax + 4]
push 0x4c1
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
test ebp, ebp
jl 0x4423d0
cmp ebp, 2
jle 0x4423d2
xor ebp, ebp
push 0
push ebp
push 0xf1
push eax
call edi
xor eax, eax
cmp byte [esi + 0x65], al
setne al
mov ebp, eax
test ebx, ebx
je 0x4423f0
add ebx, 0xffffffac
jmp 0x4423f2
xor ebx, ebx
mov ecx, dword [ebx + 4]
push 0x4bc
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
test ebp, ebp
jl 0x44240a
cmp ebp, 2
jle 0x44240c
xor ebp, ebp
push 0
push ebp
push 0xf1
push eax
call edi
movzx edx, byte [esi + 0x64]
mov eax, dword [esp + 0x18]
push edx
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
test eax, eax
je 0x44243a
push eax
call dword [sym.imp.USER32.dll_DestroyMenu]
mov eax, dword [esp + 4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x44245a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push 0x5144c8
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov ecx, dword [esp + 0x58]
xor ecx, esp
xor eax, eax
call fcn.0049e9d2
add esp, 0x5c
ret 0x10