Function at 0x401340
Capabilities:
Hide graphical window
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
xor ebx, ebx
push edi
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
fld qword [0x414350]
fld qword [0x414348]
fpatan
mov ecx, 0x20
mov eax, 0x40
mov edi, 0x41ae6c
mov dword [0x41bdf0], ebx
rep stosd dword es:[edi], eax
mov ecx, 0x20
mov edi, 0x41bce4
rep stosd dword es:[edi], eax
mov eax, 0x54b6a8
fstp qword [0x41bea8]
mov dword [eax - 8], ebx
mov dword [eax - 4], ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
add eax, 0xd8
cmp eax, 0x54cae8
jl 0x401397
mov eax, dword [0x41a3a0]
mov ecx, dword [0x41a3a4]
mov edx, dword [0x41a3a8]
mov dword [0x54b170], eax
mov eax, dword [0x41a3ac]
mov dword [0x54b174], ecx
mov ecx, dword [0x41a3b0]
mov dword [0x54b178], edx
mov edx, dword [0x41a3b4]
mov dword [0x54b17c], eax
mov eax, dword [0x41a3b8]
mov dword [0x54b180], ecx
mov ecx, dword [0x41a3bc]
mov dword [0x54b184], edx
mov edx, dword [0x41a3c0]
mov dword [0x54b248], eax
mov eax, dword [0x41a3c4]
mov dword [0x54b24c], ecx
mov ecx, dword [0x41a3c8]
mov dword [0x54b250], edx
mov edx, dword [0x41a3cc]
mov dword [0x54b254], eax
mov eax, dword [0x41a3d0]
mov dword [0x54b258], ecx
mov ecx, dword [0x41a3d4]
mov dword [0x54b25c], edx
mov edx, dword [0x41a3d8]
mov dword [0x54b320], eax
mov eax, dword [0x41a3dc]
mov dword [0x54b324], ecx
mov ecx, dword [0x41a3e0]
mov dword [0x54b328], edx
mov edx, dword [0x41a3e4]
mov dword [0x54b32c], eax
mov dword [0x54b330], ecx
mov dword [0x54b334], edx
mov ecx, 0x547f40
mov eax, 0x41a288
mov edx, dword [eax - 8]
add eax, 0x18
mov dword [ecx - 8], edx
mov edx, dword [eax - 0x1c]
mov dword [ecx - 4], edx
mov edx, dword [eax - 0x18]
mov dword [ecx], edx
mov edx, dword [eax - 0x14]
mov dword [ecx + 4], edx
mov edx, dword [eax - 0x10]
mov dword [ecx + 8], edx
mov edx, dword [eax - 0xc]
mov dword [ecx + 0xc], edx
add ecx, 0xd8
cmp eax, 0x41a4c8
jl 0x40148a
mov eax, dword [0x41a430]
mov ecx, dword [0x41a434]
mov edx, dword [0x41a438]
mov dword [0x549388], eax
mov eax, dword [0x41a43c]
mov dword [0x54938c], ecx
mov ecx, dword [0x41a440]
mov dword [0x549390], edx
mov edx, dword [0x41a444]
mov dword [0x549394], eax
mov dword [0x549398], ecx
mov dword [0x54939c], edx
call fcn.0040eab0
call fcn.00407bf0
test eax, eax
je 0x4016c5
push str.Kernel32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
push str.GetUserDefaultUILanguage
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
jne 0x401538
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
jmp 0x40153a
call eax
push esi
mov edi, eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, edi
and eax, 0xffff
cmp eax, 0x1407
jg 0x401636
je case.0x401705.1031
cmp eax, 0x80a
jg 0x4015e1
je case.0x401705.1034
cmp eax, 0x40c
jg 0x4015a4
je 0x401679
add eax, 0xfffffbfc
cmp eax, 6
ja case.0x401705.1029
jmp dword [eax*4 + 0x401b68]
mov dword [0x41be38], ebx
jmp 0x401821
mov dword [0x41be38], 0x32
jmp 0x401821
cmp eax, 0x804
jg 0x40171e
je 0x4015d2
sub eax, 0x410
je 0x401766
dec eax
jne case.0x401705.1029
mov dword [0x41be38], 0x64
jmp 0x401821
mov dword [0x41be38], 0x15e
jmp 0x401821
cmp eax, 0xc0c
jg 0x401607
je 0x401679
cmp eax, 0xc07
jg 0x401775
je case.0x401705.1031
sub eax, 0x80c
je 0x401679
jmp 0x40175d
sub eax, 0x1007
je case.0x401705.1031
sub eax, 3
je case.0x401705.1034
sub eax, 2
je 0x401679
mov dword [0x41be38], ebx
jmp 0x401821
mov dword [0x41be38], 0xc8
jmp 0x401821
cmp eax, 0x300a
jg 0x401688
je case.0x401705.1034
cmp eax, 0x200a
jg 0x4017a6
je case.0x401705.1034
cmp eax, 0x180a
jg 0x401797
je case.0x401705.1034
sub eax, 0x140a
je case.0x401705.1034
sub eax, 2
jne case.0x401705.1029
mov dword [0x41be38], 0x96
jmp 0x401821
cmp eax, 0x440a
jg 0x4016a5
je case.0x401705.1034
cmp eax, 0x3c0a
jg 0x4017eb
jmp 0x4017d3
cmp eax, 0x480a
je case.0x401705.1034
cmp eax, 0x4c0a
je case.0x401705.1034
cmp eax, 0x500a
jmp 0x40177a
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
and eax, 0xffff
cmp eax, 0x1407
jg 0x40178b
je case.0x401705.1031
cmp eax, 0x80a
jg 0x401734
je case.0x401705.1034
cmp eax, 0x40c
jg 0x40170c
je 0x401679
add eax, 0xfffffbfc
cmp eax, 6
ja case.0x401705.1029
jmp dword [eax*4 + 0x401b84]
cmp eax, 0x804
jg 0x40171e
je 0x4015d2
jmp 0x4015b1
cmp eax, 0x807
je case.0x401705.1031
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0xc0c
jg 0x401607
je 0x401679
cmp eax, 0xc07
jg 0x401775
je case.0x401705.1031
sub eax, 0x80c
je 0x401679
sub eax, 4
jne case.0x401705.1029
mov dword [0x41be38], 0xfa
jmp 0x401821
cmp eax, 0xc0a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0x300a
jg 0x4017c3
jmp 0x40163d
cmp eax, 0x1c0a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0x240a
je case.0x401705.1034
cmp eax, 0x280a
je case.0x401705.1034
cmp eax, 0x2c0a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0x440a
jg 0x4017fa
je case.0x401705.1034
cmp eax, 0x3c0a
jg 0x4017eb
je case.0x401705.1034
cmp eax, 0x340a
je case.0x401705.1034
cmp eax, 0x380a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0x400a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
cmp eax, 0x480a
je case.0x401705.1034
cmp eax, 0x4c0a
je case.0x401705.1034
cmp eax, 0x500a
je case.0x401705.1034
mov dword [0x41be38], ebx
jmp 0x401821
mov dword [0x41be38], 0x12c
mov esi, dword [ebp + 8]
push 0x3e8
push esi
mov dword [0x41ba58], esi
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
mov dword [0x41ba60], eax
mov eax, dword [ebp + 0xc]
cmp eax, ebx
jne 0x40191c
mov edi, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f00
push 0
call edi
mov ebx, dword [sym.imp.USER32.dll_LoadIconA]
push str.AMCapIcon
push esi
mov dword [esp + 0x30], eax
call ebx
mov dword [esp + 0x24], eax
mov eax, 0x3e8
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x2c], 6
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x20], esi
push eax
mov dword [esp + 0x14], 0x100b
mov dword [esp + 0x18], 0x401c50
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x4018b7
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x7f00
push 0
call edi
push str.AMCapIcon
push esi
mov dword [esp + 0x30], eax
call ebx
mov dword [esp + 0x24], eax
mov eax, 0x65
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x10]
xor eax, eax
push ecx
mov dword [esp + 0x30], 6
mov dword [esp + 0x24], esi
mov dword [esp + 0x14], 0x100b
mov dword [esp + 0x18], 0x402720
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
call dword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x40191c
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xc
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0
mov dword [0x41bd84], eax
call dword [sym.imp.USER32.dll_GetDC]
mov edx, dword [0x41bd84]
mov edi, eax
push edx
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x41af58
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
push edi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0
push esi
push 0
push 0
mov edi, dword [sym.imp.USER32.dll_CreateWindowExA]
push 0x12c
push 0x140
push 0
push 0x80000000
push 0x2cf0000
push str.SM370FR
push 0x3e8
push 0
call edi
mov dword [0x41b150], eax
mov eax, dword [ebp + 0xc]
push eax
push esi
call fcn.00410590
mov ecx, dword [0x41b150]
add esp, 8
push 0
push esi
push 0
push ecx
push 0
push 0
push 0
push 0
push 0x54800000
push 0
push str.StatusClass
push 0
call edi
test eax, eax
mov dword [0x41ba5c], eax
jne 0x4019cd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x10]
mov eax, dword [0x41b150]
push edx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [0x41b150]
push 0
push esi
push 0
push ecx
push 0x120
push 0x160
push 0
push 0x80000000
push 0x2cf0000
push str.Snapshot_Picture
push 0x65
push 0
call edi
push 0x104
push 0x41ba68
push 0x41be50
push str.CaptureFile
push str.annie
mov dword [0x41b154], eax
call dword [sym.imp.KERNEL32.dll_GetProfileStringA]
mov esi, dword [sym.imp.KERNEL32.dll_GetProfileIntA]
push 0
or eax, 0xffffffff
push str.VideoDevice
push str.annie
mov dword [0x41bbcc], eax
mov dword [0x41bbd0], eax
call esi
push 0
push str.AudioDevice
push str.annie
mov edi, eax
call esi
mov ebx, eax
call fcn.004053f0
push 1
push str.CaptureAudio
push str.annie
call esi
push 0
push str.CaptureCC
push str.annie
mov dword [0x41bbbc], eax
call esi
push 0
push str.WantPreview
push str.annie
mov dword [0x41bbc0], eax
call esi
push 1
push str.MasterStream
push str.annie
mov dword [0x41bbe0], eax
call esi
push 1
push str.UseFrameRate
push str.annie
mov dword [0x41bba8], eax
call esi
push 0xa2c2b
push str.FrameRate
push str.annie
mov dword [0x41bc68], eax
call esi
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fdivr qword [0x414340]
fmul qword [0x414338]
call sub.msvcrt.dll__ftol
mov dword [esp + 0xc], eax
fild dword [esp + 0xc]
fmul qword [0x414330]
fst qword [0x41bbd8]
fcomp qword [0x414350]
fnstsw ax
test ah, 0x41
je 0x401b24
mov dword [0x41bbd8], 0
mov dword [0x41bbdc], 0x402e0000
push 0
push str.UseTimeLimit
push str.annie
call esi
push 0
push str.TimeLimit
push str.annie
mov dword [0x41bc64], eax
call esi
push ebx
push edi
mov dword [0x41bc6c], eax
call fcn.00405210
add esp, 8
call fcn.004012e0
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret