Function at 0x401031
Capabilities:
Create thread
Extract resource via kernel32 functions

Disassembly:
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x407848], eax
call sub.comctl32.dll_InitCommonControls
push 0
push 0x401031
push 0
push 0x3e9
push dword [0x407848]
call sub.user32.dll_DialogBoxParamA
push 0
call sub.kernel32.dll_ExitProcess
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
cmp eax, 0x110
jne 0x401110
push 3
push dword [0x407848]
call sub.user32.dll_LoadCursorA
mov dword [0x407850], eax
push esi
push 0xa
push 0x7d8
push dword [0x407848]
call sub.kernel32.dll_FindResourceA
push eax
push eax
push dword [0x407848]
call sub.kernel32.dll_SizeofResource
mov dword [0x407854], eax
pop eax
push eax
push dword [0x407848]
call sub.kernel32.dll_LoadResource
push eax
call sub.kernel32.dll_LockResource
mov esi, eax
mov eax, dword [0x407854]
add eax, 4
push eax
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [0x407858], eax
mov ecx, dword [0x407854]
mov dword [eax], ecx
add eax, 4
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop esi
push dword [0x407858]
call fcn.00401ac1
push 0x40623e
push 0
push 0xc
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
push 0x40623e
push 0x3eb
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push str.Push_GetSerial...
push 0x3ec
push dword [ebp + 8]
call sub.user32.dll_SetDlgItemTextA
push 0x407860
push 0
push dword [ebp + 8]
push 0x4015ae
push 0
push 0
call sub.kernel32.dll_CreateThread
jmp 0x40128c
cmp eax, 0x111
jne 0x40118a
cmp dword [ebp + 0x10], 0x3ee
jne 0x40113d
push 0x407860
push 0
push dword [ebp + 8]
push 0x401295
push 0
push 0
call sub.kernel32.dll_CreateThread
jmp 0x40128c
cmp dword [ebp + 0x10], 0x3ef
jne 0x401171
push 0
call sub.kernel32.dll_GetModuleHandleA
mov dword [0x40784c], eax
push 0
push 0x40160f
push dword [ebp + 8]
push 0x3f1
push dword [0x40784c]
call sub.user32.dll_DialogBoxParamA
jmp 0x40128c
cmp dword [ebp + 0x10], 0x3f0
jne 0x40128c
push 0
call sub.kernel32.dll_ExitProcess
jmp 0x40128c
cmp eax, 0x10
jne 0x40119e
push 0
push dword [ebp + 8]
call sub.user32.dll_EndDialog
jmp 0x40128c
cmp eax, 0x201
jne 0x4011bc
push dword [ebp + 0x14]
push 2
push 0xa1
push dword [ebp + 8]
call sub.user32.dll_SendMessageA
jmp 0x40128c
cmp eax, 0x204
jne 0x4011d2
push 6
push dword [ebp + 8]
call sub.user32.dll_ShowWindow
jmp 0x40128c
cmp eax, 0x136
jne 0x4011e7
mov eax, dword [0x40785c]
leave
ret 0x10
cmp eax, 0x138
jne 0x401212
push 1
push dword [ebp + 0x10]
call sub.gdi32.dll_SetBkMode
push 0xffffff
push dword [ebp + 0x10]
call sub.gdi32.dll_SetTextColor
push 5
call sub.gdi32.dll_GetStockObject
leave
ret 0x10
cmp eax, 0x133
jne 0x40123b
push 1
push dword [ebp + 0x10]
call sub.gdi32.dll_SetBkMode
push 0xffff
push dword [ebp + 0x10]
call sub.gdi32.dll_SetTextColor
mov eax, dword [0x40785c]
leave
ret 0x10
cmp eax, 0xf
jne 0x401271
push 0x3e9
push dword [ebp + 8]
call sub.user32.dll_BeginPaint
push dword [0x406010]
push str._n_ndd
push 0x3e9
call sub.user32.dll_FillRect
push 0x3e9
push dword [ebp + 8]
call sub.user32.dll_EndPaint
jmp 0x40128c
cmp eax, 0x20
jne 0x401283
push dword [0x407850]
call sub.user32.dll_SetCursor
jmp 0x40128c
mov eax, 0
leave
ret 0x10
mov eax, 1
leave
ret 0x10