Function at 0x401680
Capabilities:
Check for software breakpoints
Extract resource via kernel32 functions
Terminate process

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffa7c
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
push 0x2349
push 0x68
push esi
call sub.KERNEL32.DLL_FindResourceA
mov ebx, eax
test ebx, ebx
jne 0x4016b7
mov eax, dword [ebp + 0x14]
push eax
call fcn.00401380
pop ecx
test eax, eax
jne 0x4016f7
xor eax, eax
jmp 0x4019f4
push ebx
push esi
call sub.KERNEL32.DLL_LoadResource
mov edi, eax
test edi, edi
jne 0x4016cb
xor eax, eax
jmp 0x4019f4
je 0x4016d0
jne 0x4016d0
jmp 0x401728
push edi
call sub.KERNEL32.DLL_LockResource
mov dword [0x45e16c], eax
cmp dword [0x45e16c], 0
jne 0x4016eb
xor eax, eax
jmp 0x4019f4
push ebx
push esi
call sub.KERNEL32.DLL_SizeofResource
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
push 0x2c8
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
sub eax, 0x2c8
add eax, dword [0x45e16c]
push eax
mov edx, dword [ebp + 0xc]
push edx
call fcn.00405314
add esp, 0xc
mov ecx, sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 4], ecx
mov esi, dword [ebp - 4]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017a0
mov eax, 0x417b2a
mov dword [ebp - 8], eax
mov esi, dword [ebp - 8]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017a0
mov edx, sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0xc], edx
mov esi, dword [ebp - 0xc]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017a0
mov ecx, sub.KERNEL32.DLL_FindResourceA
mov dword [ebp - 0x10], ecx
mov esi, dword [ebp - 0x10]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017a0
mov eax, sub.KERNEL32.DLL_LoadResource
mov dword [ebp - 0x14], eax
mov esi, dword [ebp - 0x14]
mov al, byte [esi]
cmp al, 0xcc
je 0x4017a0
mov esi, 0x45e180
lea edi, [ebp - 0x300]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
push 0x21c
lea eax, [ebp - 0x300]
push eax
push 0x64
mov edx, dword [ebp + 0xc]
add edx, 0xac
push edx
call fcn.004033d4
add esp, 0x10
xor ecx, ecx
mov dword [ebp - 0x18], ecx
push 0
call fcn.0040aefc
pop ecx
push eax
call fcn.00407e54
pop ecx
mov ebx, 1
lea esi, [ebp - 0x483]
call fcn.00407e7c
mov byte [esi], al
inc ebx
inc esi
cmp ebx, 0x7f
jle 0x4017bf
mov byte [ebp - 0x484], 0
mov byte [ebp - 0x405], 0
push 0x80
lea eax, [ebp - 0x484]
push eax
lea edx, [ebp - 0x504]
push edx
call fcn.00405314
add esp, 0xc
lea ecx, [ebp - 0x504]
push ecx
mov eax, dword [ebp + 0xc]
add eax, 0x1c8
push eax
mov edx, dword [ebp + 0xc]
add edx, 0x248
push edx
lea ecx, [ebp - 0x484]
push ecx
call fcn.00403da4
add esp, 0x10
mov ebx, 1
lea eax, [ebp - 0x483]
mov esi, 0x7f
mov cl, byte [eax]
sub esi, ebx
mov dl, byte [ebp + esi - 0x484]
mov byte [ebp + esi - 0x484], cl
mov byte [eax], dl
inc ebx
inc eax
cmp ebx, 0x3f
jle 0x40182a
push 0x2c8
mov eax, dword [ebp + 0xc]
push eax
lea eax, [ebp - 0x2e0]
push eax
call fcn.00405314
add esp, 0xc
push 0x2c8
lea edx, [ebp - 0x2e0]
push edx
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00405314
add esp, 0xc
push 0x80
lea eax, [ebp - 0x504]
push eax
lea edx, [ebp - 0x584]
push edx
call fcn.00405314
add esp, 0xc
lea ecx, [ebp - 0x404]
push ecx
mov eax, dword [ebp - 0x18]
push eax
call fcn.0040d350
test eax, eax
je 0x4018f6
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x1c4]
push ecx
mov eax, dword [ebp + 0xc]
add eax, 0xac
push eax
mov edx, dword [ebp + 0xc]
add edx, 0xc0
push edx
push 0
call fcn.004015ec
add esp, 0x10
call sub.KERNEL32.DLL_GetCurrentProcessId
push eax
push 0
push 1
call sub.KERNEL32.DLL_OpenProcess
mov ebx, eax
push 0
push ebx
call sub.KERNEL32.DLL_TerminateProcess
push ebx
call sub.KERNEL32.DLL_CloseHandle
xor eax, eax
jmp 0x4019f4
lea edx, [ebp - 0x404]
lea ecx, [ebp - 0x584]
push edx
push 0x80
push ecx
push 0x7330
push 0x73b0
call fcn.0040d500
mov ebx, eax
push 0x80
lea eax, [ebp - 0x484]
push eax
lea edx, [ebp - 0x584]
push edx
call fcn.004054f4
add esp, 0xc
test eax, eax
jne 0x4019a4
test ebx, ebx
jne 0x4019a4
lea ecx, [ebp - 0x404]
push ecx
push 0x80
mov eax, dword [ebp + 0xc]
push eax
push 0x7330
push 0x73b0
call fcn.0040d500
test eax, eax
je 0x401967
xor eax, eax
jmp 0x4019f4
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov eax, esi
mov edx, 0x7f
mov ecx, 0x7f
sub edx, ebx
sub ecx, ebx
lea edi, [esi + ecx]
mov dl, byte [esi + edx]
mov cl, byte [eax]
mov byte [edi], cl
mov byte [eax], dl
inc ebx
inc eax
cmp ebx, 0x3f
jle 0x40196e
mov eax, dword [ebp + 0xc]
inc eax
push eax
push eax
call fcn.004034f8
add esp, 8
mov eax, 1
jmp 0x4019f4
inc dword [ebp - 0x18]
jmp 0x401862
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret