Function at 0x401000
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1278
call fcn.0042e150
push ebx
push esi
push edi
push str.CobutyAccelMain
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [ebp - 0xc], eax
push 0xc0c0c0
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [ebp - 0x10], eax
push str.COBFUTY_WindowClass
push str.CobutyMenu
mov eax, dword [ebp - 0x10]
push eax
push 0x7f00
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push eax
push 0x432060
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
push eax
mov eax, dword [ebp + 8]
push eax
push 8
push 0
push 0x4019a3
push 0x2003
call fcn.00402599
add esp, 0x28
mov dword [ebp - 0x14], 0xcf0000
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x18], eax
push 1
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
push 1
mov eax, dword [ebp - 0x14]
push eax
call fcn.004025f5
add esp, 0x18
push 0
mov eax, dword [ebp + 8]
push eax
push 0
push 0
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x20]
push eax
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
push str.COBOL
push str.COBFUTY_WindowClass
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x4010fd
xor eax, eax
jmp 0x40199c
mov eax, dword [ebp + 8]
push eax
push 0
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_SetWindowWord]
mov dword [0x449c50], 0
push str.CobutyBitmap
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov dword [0x433e74], eax
mov eax, dword [ebp + 8]
mov dword [0x449c54], eax
mov eax, dword [ebp - 4]
mov dword [0x449c28], eax
mov dword [0x449c60], 0
mov eax, dword [ebp - 4]
mov dword [0x449c48], eax
mov eax, dword [ebp - 4]
push eax
call fcn.0042451c
add esp, 4
mov dword [0x449c58], 0
push 0
call fcn.00417b00
add esp, 4
test eax, eax
jne 0x4012e1
push str.f3bacnvs.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x449c1c], eax
push str.f3bacnv.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [0x449c40], eax
mov dword [0x449c58], 0
mov dword [0x449c3c], 0
mov dword [0x449c4c], 0
mov dword [0x449c20], 0
mov dword [0x449c38], 0
mov dword [0x449c2c], 0
mov dword [0x449c6c], 0
mov dword [0x449c68], 0
mov dword [0x449c64], 0
cmp dword [0x449c1c], 0
jne 0x40120b
mov dword [0x449c58], 0
jmp 0x401299
push str.XCnv_Jeopen
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c3c], eax
push str.XCnv_Ejopen
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c4c], eax
push str.XCnv_Jeconv
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c20], eax
push str.XCnv_Ejconv
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c38], eax
push str.XCnv_Jeclose
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c2c], eax
push str.XCnv_Ejclose
mov eax, dword [0x449c1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c6c], eax
mov dword [0x449c58], 1
cmp dword [0x449c40], 0
jne 0x4012b5
mov dword [0x449c58], 0
jmp 0x4012e1
push str.XCV_EBCJIS
mov eax, dword [0x449c40]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c68], eax
push str.XCV_JISEBC
mov eax, dword [0x449c40]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x449c64], eax
mov dword [0x449c30], 2
mov dword [0x449c44], 3
push 0
push 0x8d
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
test eax, eax
jne 0x40131d
mov eax, 0xffffffff
jmp 0x40199c
lea eax, [ebp - 0x634]
push eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_GetMenu]
mov dword [ebp - 0x63c], eax
push 0
push 1
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0xd6
push 0
push 0xd6
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 1
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x638], eax
push 0
push 2
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
mov eax, dword [ebp - 0x638]
push eax
push 0x410
push 1
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 3
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6e
push 0
push 0x6e
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 4
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x66
push 0
push 0x66
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 5
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x67
push 0
push 0x67
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 6
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x69
push 0
push 0x69
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 7
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6b
push 0
push 0x6b
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 8
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6a
push 0
push 0x6a
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 9
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x72
push 0
push 0x72
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xa
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6c
push 0
push 0x6c
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xb
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x68
push 0
push 0x68
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xc
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x65
push 0
push 0x65
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xd
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6d
push 0
push 0x6d
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xe
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x6f
push 0
push 0x6f
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0xf
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x70
push 0
push 0x70
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0x10
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0x71
push 0
push 0x71
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 2
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_GetSubMenu]
mov dword [ebp - 0x638], eax
push 0
push 0x11
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
mov eax, dword [ebp - 0x638]
push eax
push 0x410
push 2
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0x12
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0xdd
push 0
push 0xdd
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0x13
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0xde
push 0
push 0xde
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
push 0
push 0x14
lea eax, [ebp - 0x634]
push eax
call sub.F3BIFUTC.dll_Ordinal_6
add esp, 0xc
lea eax, [ebp - 0x634]
push eax
push 0xd3
push 0
push 0xd3
mov eax, dword [ebp - 0x63c]
push eax
call dword [sym.imp.USER32.dll_ModifyMenuA]
jmp 0x4018da
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_DrawMenuBar]
mov eax, dword [ebp - 4]
push eax
call fcn.00402674
add esp, 4
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 0
push 0
push 0
lea eax, [ebp - 0x1278]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
cmp eax, 1
jne 0x401966
lea eax, [ebp - 0x1278]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
cmp eax, 1
jne 0x401947
jmp 0x401908
lea eax, [ebp - 0x1278]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x1278]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x401908
mov eax, dword [ebp - 0x1270]
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push eax
push str.COBFUTY_WindowClass
call dword [sym.imp.USER32.dll_UnregisterClassA]
mov eax, dword [0x433e74]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 8]
jmp 0x40199c
pop edi
pop esi
pop ebx
leave
ret 0x10