Function at 0x414120
Capabilities:
Get common file path
Initialize winsock library
Query or enumerate registry value

Disassembly:
sub esp, 0x2f4
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x310]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], ebx
mov esi, str.__showconfig
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x414166
cmp cl, bl
je 0x414162
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x414166
add eax, 2
add esi, 2
cmp cl, bl
jne 0x414142
xor eax, eax
jmp 0x41416b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x414174
call fcn.00413f50
push ebx
push 0x4228f0
call dword [sym.imp.USER32.dll_FindWindowA]
test eax, eax
je 0x414196
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2f4
ret 0x10
lea eax, [esp + 0x174]
push eax
push 0x102
call sub.WSOCK32.dll_WSAStartup
test eax, eax
je 0x4141be
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2f4
ret 0x10
cmp dword [esp + 0x30c], ebx
je 0x4141f6
mov ecx, dword [0x422828]
push ebx
push 0x4210b4
mov edx, dword [ecx + 0x108]
push edx
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f4
ret 0x10
push edi
push 0x435920
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
call fcn.004034c0
mov ecx, dword [str.Software_vp_eye]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea eax, [esp + 0x10]
push eax
push 0x20019
push ebx
push ecx
push closesocket
call edi
test eax, eax
jne 0x414259
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push 0x43084c
push ebx
push ebx
push str.english
push eax
mov dword [esp + 0x2c], 1
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x10]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov al, byte [0x43084c]
mov ebp, 0x421464
cmp al, 1
mov dword [0x4307f0], ebx
mov dword [0x422828], ebp
je 0x4142cb
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
call esi
and eax, 0x3ff
cmp eax, 4
jne 0x4142c4
call esi
and eax, 0xffff
and eax, 0xfffffc00
cmp eax, 0x400
jne 0x4142ae
mov dword [0x4307f0], 1
mov dword [0x422828], 0x421630
jmp 0x4142d7
mov dword [0x4307f0], 2
mov dword [0x422828], 0x4217fc
jmp 0x4142d7
call esi
and eax, 0x3ff
mov dword [0x4307f0], ebx
mov dword [0x422828], ebp
call fcn.00413e90
lea edx, [esp + 0x18]
push edx
push 0x20019
push ebx
push str.Software_vp_eye
push closesocket
call edi
test eax, eax
jne 0x414341
lea eax, [esp + 0x24]
lea ecx, [esp + 0x74]
push eax
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x20]
push ecx
push edx
push ebx
push str.sw_serial_number
push eax
mov dword [esp + 0x3c], 0x100
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x414341
mov eax, dword [esp + 0x1c]
mov esi, 1
cmp eax, esi
jne 0x414341
lea ecx, [esp + 0x74]
push ecx
call fcn.00414030
add esp, 4
test eax, eax
je 0x414345
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push edx
call ebp
cmp esi, ebx
jne 0x414381
push 0x30
push 0x4210b4
push str.Serial_number_error_
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2f4
ret 0x10
mov ecx, dword [str.Software_vp_eye]
lea eax, [esp + 0x10]
push eax
push 0x20019
push ebx
push ecx
push closesocket
mov dword [0x43551c], ebx
call edi
test eax, eax
jne 0x4143cf
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push 0x43551c
push ebx
push ebx
push str.PhotoSize
push eax
mov dword [esp + 0x2c], 4
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x10]
push ecx
call ebp
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.Greeting_card_from_Meta_Media
push 0x430f80
call esi
push 0x429560
push 0x435380
call esi
mov eax, dword [str.Software_vp_eye]
lea edx, [esp + 0x10]
push edx
push 0x20019
push ebx
push eax
push closesocket
call edi
test eax, eax
jne 0x414457
mov edx, dword [esp + 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [esp + 0x14]
mov esi, 0x64
push ecx
push 0x430f80
push ebx
push ebx
push str.PhotoCardExeTitle
push edx
mov dword [esp + 0x2c], esi
call edi
lea eax, [esp + 0x14]
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x10]
push eax
push 0x435380
push ebx
push ebx
push str.PhotoCardExeEmail
push ecx
call edi
mov edx, dword [esp + 0x10]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00414a90
push str.PCARD.LOG
call fcn.004073c0
add esp, 4
cmp eax, ebx
mov dword [0x430f70], eax
jne 0x4144a0
mov eax, dword [0x422828]
push ebx
push 0x4210b4
mov ecx, dword [eax + 0x84]
push ecx
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f4
ret 0x10
call fcn.00413db0
test eax, eax
je 0x4144b8
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f4
ret 0x10
push 0x4357a0
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edi, dword [sym.imp.USER32.dll_GetDC]
push ebx
mov dword [0x4355b0], 0x168
call edi
mov edx, dword [0x430f70]
mov esi, eax
push str.PCLOGO.JPG
push edx
push esi
call fcn.004075e0
mov ebp, dword [sym.imp.USER32.dll_ReleaseDC]
add esp, 0xc
mov dword [0x430f74], eax
push esi
push ebx
call ebp
push ebx
push 0x40bac0
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, dword [esp + 0x310]
push eax
push str.LOGODLG
push esi
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov eax, dword [0x430f74]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
call fcn.004097e0
cmp eax, 1
jne 0x41454f
call fcn.00409840
test eax, eax
je 0x41454f
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2f4
ret 0x10
push ebx
call edi
mov edi, eax
push edi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push 8
push edi
mov dword [0x435570], eax
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
cmp eax, 0x280
je 0x414598
cmp eax, 0x320
je 0x41458c
xor ecx, ecx
cmp eax, 0x400
setne cl
add ecx, 2
mov dword [0x435540], ecx
jmp 0x41459e
mov dword [0x435540], 1
jmp 0x41459e
mov dword [0x435540], ebx
mov edx, dword [0x430f70]
push str.WALL.JPG
push edx
push edi
call fcn.004075e0
add esp, 0xc
mov dword [0x4358e4], eax
push edi
push ebx
call ebp
mov edi, dword [sym.imp.USER32.dll_CreatePopupMenu]
call edi
mov dword [0x435574], eax
call edi
mov edx, dword [0x435574]
mov dword [0x430e24], eax
mov eax, dword [0x422828]
mov edi, dword [sym.imp.USER32.dll_AppendMenuA]
mov ecx, dword [eax + 0x88]
push ecx
push 0x2ee0
push 1
push edx
call edi
mov eax, dword [0x422828]
mov edx, dword [0x435574]
mov ecx, dword [eax + 0x8c]
push ecx
push 0x32c8
push ebx
push edx
call edi
mov eax, dword [0x422828]
mov edx, dword [0x435574]
mov ecx, dword [eax + 0x90]
push ecx
push 0x36b0
push ebx
push edx
call edi
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov edi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x86
push esi
mov dword [esp + 0x30], 0x30
mov dword [esp + 0x34], 3
mov dword [esp + 0x38], 0x4137b0
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], esi
call edi
mov ebp, dword [sym.imp.USER32.dll_LoadCursorA]
push 0x7f00
push ebx
mov dword [esp + 0x48], eax
call ebp
push 5
mov dword [esp + 0x48], eax
call dword [sym.imp.GDI32.dll_GetStockObject]
push 0x86
push esi
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], 0x4228f0
call edi
mov dword [esp + 0x54], eax
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.USER32.dll_RegisterClassExA]
push str.HAND
push esi
mov dword [0x4358ec], esi
call ebp
mov ecx, dword [0x435578]
mov edx, dword [0x43554c]
push ebx
push esi
push ebx
push ebx
mov dword [0x4355f4], eax
push ecx
push edx
push ebx
push ebx
push closesocket
push 0x4228f0
push 0x4228f0
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x435740], eax
mov ecx, dword [esp + 0x314]
push ecx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov edi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea edx, [esp + 0x60]
push ebx
push edx
call edi
test eax, eax
je 0x414747
mov ebp, dword [sym.imp.USER32.dll_TranslateMessage]
mov eax, dword [0x435740]
lea ecx, [esp + 0x58]
push eax
push ecx
call fcn.00403060
add esp, 8
test eax, eax
jne 0x414739
lea edx, [esp + 0x58]
push edx
call ebp
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
lea ecx, [esp + 0x60]
push ebx
push ecx
call edi
test eax, eax
jne 0x414710
mov edx, dword [0x435570]
push edx
call dword [sym.imp.GDI32.dll_DeleteDC]
push str.tempfile.wav
call fcn.00418c3d
push str.mix_____.wav
call fcn.00418c3d
mov eax, dword [0x435574]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
add esp, 8
push eax
call edi
mov ecx, dword [0x430e24]
push ecx
call edi
mov edx, dword [0x4358e4]
push edx
call edi
mov eax, dword [0x4355f4]
push eax
call edi
mov eax, dword [0x43550c]
cmp eax, ebx
je 0x4147b0
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov ecx, dword [0x43550c]
push ecx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [0x430f70]
push edx
call fcn.00407790
add esp, 4
lea eax, [esp + 0x28]
push esi
push eax
call dword [sym.imp.USER32.dll_UnregisterClassA]
call sub.WSOCK32.dll_WSACleanup
mov eax, dword [esp + 0x60]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2f4
ret 0x10