Function at 0x402060
Capabilities:
Check mutex on windows
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
call fcn.00403bd0
lea eax, [ebp - 0x2c]
push 0xc
push 0x5021b8
push 0x1c
push str.6:_r
push eax
call fcn.0040afd0
add esp, 0x14
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x28]
cmp edi, 7
ja 0x4020ad
test edi, edi
je 0x4020e8
xor edx, edx
nop dword [eax]
cmp byte [ebx + edx], 0
je 0x4020bd
inc edx
cmp edi, edx
jne 0x4020a0
jmp 0x4020e8
push edi
push ebx
push 0
call fcn.004e1300
add esp, 0xc
test eax, eax
je 0x4020e8
cmp esi, 0x80000000
je 0x402101
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edx
lea eax, [ebp - 0x1c]
push 0x5021d0
push 0x50214c
push eax
push 0
push 1
call fcn.004dc7d0
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], edi
push eax
call fcn.004d14a0
add esp, 4
mov ebx, eax
mov edi, edx
push ebx
push 0
push 0
call sub.kernel32.dll_CreateMutexA
call sub.kernel32.dll_GetLastError
cmp eax, 0xb7
je 0x402229
mov dword [ebp - 0x20], ebx
call fcn.0040cf50
push 0x7d0
call fcn.0040c750
add esp, 4
mov esi, dword [0x55bd94]
movzx eax, byte [esi]
push 1
push 0x32e00
call fcn.0040d1d0
add esp, 8
test eax, eax
je 0x402246
mov ebx, eax
push 0x32e00
push 0x5021e0
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
nop word [eax + eax]
mov ecx, eax
and ecx, 0x1f
movzx ecx, byte [ecx + 0x534fe0]
xor byte [ebx + eax], cl
inc eax
cmp eax, 0x32e00
jne 0x402170
push 0xfa0
call fcn.0040c750
add esp, 4
lea eax, [ebp - 0x1c]
push eax
call fcn.00408a80
add esp, 4
mov eax, dword [ebp - 0x1c]
cmp eax, 0x80000000
je 0x4021bc
test eax, eax
je 0x4021bc
push 1
push eax
push dword [ebp - 0x18]
call fcn.0040d1e0
add esp, 0xc
movzx eax, byte [esi]
push 1
push 0x32e00
call fcn.0040d1d0
add esp, 8
test eax, eax
je 0x402246
mov esi, eax
push 0x32e00
push ebx
push eax
call sub.msvcrt.dll_memcpy
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 0x10], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x32e00
call fcn.0040a680
add esp, 0x18
push 1
push 0x32e00
push esi
call fcn.0040d1e0
add esp, 0xc
push 1
push 0x32e00
push ebx
call fcn.0040d1e0
add esp, 0xc
mov ebx, dword [ebp - 0x20]
test edi, edi
mov byte [ebx], 0
je 0x40223e
push 1
push edi
push ebx
call fcn.0040d1e0
add esp, 0x2c
jmp 0x402241
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x32e00
push 1
call fcn.004d09f0
nop word cs:[eax + eax]
nop dword [eax]
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x190
call fcn.00403bd0
lea esi, [ebp - 0x19c]
push esi
call fcn.00485340
add esp, 4
lea eax, [ebp - 0x180]
push esi
push eax
call fcn.004095a0
add esp, 8
mov eax, dword [ebp - 0x178]
mov ebx, dword [ebp - 0x17c]
mov dword [ebp - 0xf8], eax
lea eax, [eax*4]
mov dword [ebp - 0xf4], ebx
lea edi, [eax + eax*2]
jmp 0x4022ce
add ebx, 0xc
add edi, 0xfffffff4
test cl, cl
jne 0x402353
test edi, edi
je 0x40328d
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 8]
mov dword [ebp - 0x2c], eax
push 0xc
push 0x53501a
push 0x1a
push 0x535000
lea eax, [ebp - 0xcc]
push eax
call fcn.0040afd0
add esp, 0x14
mov eax, dword [ebp - 0xc8]
cmp esi, dword [ebp - 0xc4]
jne 0x402330
push esi
mov esi, eax
push eax
push dword [ebp - 0x2c]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
sete cl
mov eax, dword [ebp - 0xcc]
test eax, eax
jne 0x40233e
jmp 0x4022c0
mov esi, eax
xor ecx, ecx
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x4022c0
push 1
push eax
push esi
mov esi, ecx
call fcn.0040d1e0
mov ecx, esi
add esp, 0xc
jmp 0x4022c0
lea ebx, [ebp - 0xcc]
push ebx
call fcn.004034d0
add esp, 4
mov eax, dword [ebp - 0xcc]
cmp eax, 0x80000000
mov dword [ebp - 0xf0], eax
je 0x4032f3
mov esi, dword [ebp - 0xc8]
push ebx
call fcn.004034d0
add esp, 4
mov eax, dword [ebp - 0xcc]
mov edi, dword [ebp - 0xc8]
cmp eax, 0x80000000
mov dword [ebp - 0xec], eax
je 0x403301
mov dword [ebp - 0x120], esi
mov esi, dword [ebp - 0xc4]
lea eax, [ebp - 0x118]
push 0xc
push 0x535088
push 0x28
push 0x535060
push eax
call fcn.0040afd0
add esp, 0x14
lea eax, [ebp - 0x174]
push 0xc
push 0x5350d5
push 0x41
push str.o_z_C
push eax
call fcn.0040afd0
add esp, 0x14
lea eax, [ebp - 0x60]
push 0xc
push 0x53511e
push 0x3d
push 0x5350e1
push eax
call fcn.0040afd0
add esp, 0x14
mov dword [ebp - 0x10c], edi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x108], esi
lea esi, [ebp - 0x28]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xbc], 0x20
mov byte [ebp - 0xac], 3
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0x54], edi
mov dword [ebp - 0x20], 0
lea eax, [ebp - 0x10c]
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0xb4], 0x502000
push ebx
push eax
call fcn.004956b0
add esp, 8
test al, al
jne 0x40331e
mov eax, dword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x28]
movsd qword [ebp - 0x3c], xmm0
mov dword [ebp - 0x34], eax
push 0xc
push 0x535159
push 0x2f
push 0x53512a
push esi
call fcn.0040afd0
add esp, 0x14
movsd xmm0, qword [ebp - 0x118]
mov eax, dword [ebp - 0x110]
mov edx, dword [ebp - 0x16c]
mov ecx, dword [ebp - 0x58]
movsd qword [ebp - 0xcc], xmm0
movsd xmm0, qword [ebp - 0x174]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0x34]
movsd qword [ebp - 0xc0], xmm0
movsd xmm0, qword [ebp - 0x60]
mov dword [ebp - 0xac], ecx
mov ecx, dword [ebp - 0x20]
movsd qword [ebp - 0xb4], xmm0
movsd xmm0, qword [ebp - 0x3c]
mov dword [ebp - 0xa0], edx
movsd qword [ebp - 0xa8], xmm0
movsd xmm0, qword [ebp - 0x28]
mov dword [ebp - 0x94], ecx
movsd qword [ebp - 0x9c], xmm0
push 0
push 1
push 5
push ebx
push esi
call fcn.0040a220
add esp, 0x14
mov eax, dword [ebp - 0x28]
mov edi, dword [ebp - 0x20]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x402567
push 1
push eax
push dword [ebp - 0xc8]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xc0]
test eax, eax
je 0x402582
push 1
push eax
push dword [ebp - 0xbc]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xb4]
test eax, eax
je 0x40259d
push 1
push eax
push dword [ebp - 0xb0]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xa8]
test eax, eax
je 0x4025b8
push 1
push eax
push dword [ebp - 0xa4]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x4025d3
push 1
push eax
push dword [ebp - 0x98]
call fcn.0040d1e0
add esp, 0xc
push 0xc
push 0x53517f
push 0x1a
push 0x535165
push esi
call fcn.0040afd0
add esp, 0x14
mov esi, dword [ebp - 0x24]
push dword [ebp - 0x20]
push esi
lea eax, [ebp - 0xcc]
push eax
call fcn.004a34c0
add esp, 0xc
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x402613
push 1
push eax
push esi
call fcn.0040d1e0
add esp, 0xc
push 0xc
push 0x5351a3
push 0x18
push 0x53518b
lea eax, [ebp - 0x28]
push eax
call fcn.0040afd0
add esp, 0x14
mov esi, dword [ebp - 0x24]
push dword [ebp - 0x20]
push esi
lea eax, [ebp - 0xcc]
push eax
call fcn.004a35a0
add esp, 0xc
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x402656
push 1
push eax
push esi
call fcn.0040d1e0
add esp, 0xc
push edi
push dword [ebp - 0xd0]
lea esi, [ebp - 0xcc]
push esi
call fcn.004a35a0
add esp, 0xc
mov dword [ebp - 0x74], 0x8000000
push esi
lea eax, [ebp - 0x28]
push eax
call fcn.00495b50
add esp, 8
mov eax, dword [ebp - 0x28]
cmp eax, 0x80000000
mov dword [ebp - 0xe4], eax
je 0x403338
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0xdc], ecx
mov ecx, ebx
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xe0], edx
call fcn.004015d0
mov edi, dword [ebp - 0xf8]
test esi, esi
je 0x4031a4
call fcn.00459020
mov edi, eax
push 0xc
push 0x53551c
push 0x20
push 0x5354fc
push ebx
call fcn.0040afd0
add esp, 0x14
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
add eax, esi
push eax
push esi
lea eax, [ebp - 0x60]
push eax
call fcn.004097e0
add esp, 0xc
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x402717
push 1
push eax
push esi
call fcn.0040d1e0
add esp, 0xc
push 0xc
push 0x53555c
push 0x34
push 0x535528
lea eax, [ebp - 0xcc]
push eax
call fcn.0040afd0
add esp, 0x14
mov esi, dword [ebp - 0xc8]
mov eax, dword [ebp - 0xc4]
lea ecx, [ebp - 0x3c]
add eax, esi
push eax
push esi
push ecx
call fcn.004097e0
add esp, 0xc
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x402766
push 1
push eax
push esi
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x402a5b
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x58]
mov ebx, edi
xor esi, esi
add ebx, 0x110
mov dword [ebp - 0x48], ebx
lea eax, [ecx + eax*4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x40], eax
lea eax, [edi + 8]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x44], eax
jmp 0x4027e6
mov eax, dword [ebp - 0x24]
mov byte [eax + esi], bl
inc esi
mov dword [ebp - 0x20], esi
add ecx, 4
cmp ecx, dword [ebp - 0x40]
je 0x402a5b
mov ebx, dword [ecx]
cmp ebx, 0x77
jg 0x402810
cmp ebx, 0x2d
je 0x4027fb
cmp ebx, 0x34
jne 0x4032b0
cmp esi, dword [ebp - 0x28]
jne 0x4027d0
jmp 0x402959
cmp ebx, 0x78
mov dword [ebp - 0x2c], ecx
je 0x4028b0
cmp ebx, 0x79
jne 0x4032b0
mov ecx, dword [edi + 0x108]
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
jmp 0x402861
mov ecx, ebx
mov edx, esi
call fcn.004063f0
xor ecx, ecx
mov eax, dword [edi + ecx*4 + 8]
inc ecx
mov dword [edi + 0x108], ecx
test eax, 0x10000000
je 0x402930
cmp ecx, 0x40
jb 0x40284b
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x14c]
cmp eax, 1
mov edx, ecx
sbb edx, 0
jl 0x402840
cmp dword [edi + 0x150], 0
js 0x402840
add eax, 0xffffff00
mov edx, esi
adc ecx, 0xffffffff
mov dword [edi + 0x148], eax
mov dword [edi + 0x14c], ecx
mov ecx, ebx
call fcn.004064e0
jmp 0x402849
mov ecx, dword [edi + 0x108]
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
jmp 0x4028dd
mov ecx, ebx
mov edx, esi
call fcn.004063f0
xor ecx, ecx
mov eax, dword [edi + ecx*4 + 8]
inc ecx
mov dword [edi + 0x108], ecx
test eax, 0x8000000
je 0x402920
cmp ecx, 0x40
jb 0x4028cb
mov eax, dword [edi + 0x148]
mov ecx, dword [edi + 0x14c]
cmp eax, 1
mov edx, ecx
sbb edx, 0
jl 0x4028c0
cmp dword [edi + 0x150], 0
js 0x4028c0
add eax, 0xffffff00
mov edx, esi
adc ecx, 0xffffffff
mov dword [edi + 0x148], eax
mov dword [edi + 0x14c], ecx
mov ecx, ebx
call fcn.004064e0
jmp 0x4028c9
shr eax, 0x1c
cmp eax, dword [ebp - 0x30]
jb 0x40293f
jmp 0x4032a2
shr eax, 0x1d
or eax, 8
cmp eax, dword [ebp - 0x30]
jae 0x403294
mov ecx, dword [ebp - 0x44]
mov ebx, dword [ecx + eax*4]
cmp ebx, 0x7f
ja 0x402970
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
cmp esi, dword [ebp - 0x28]
jne 0x4027d0
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x2c], ecx
call fcn.00406210
mov ecx, dword [ebp - 0x2c]
add esp, 4
jmp 0x4027d0
mov eax, ebx
cmp ebx, 0x800
mov dword [ebp - 0xcc], 0
jae 0x4029a2
shr eax, 6
and bl, 0x3f
mov esi, 2
or al, 0xc0
or bl, 0x80
mov byte [ebp - 0xcc], al
mov byte [ebp - 0xcb], bl
jmp 0x402a11
cmp ebx, 0x10000
jae 0x4029d7
shr eax, 0xc
mov esi, 3
or al, 0xe0
mov byte [ebp - 0xcc], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [ebp - 0xcb], al
mov byte [ebp - 0xca], bl
jmp 0x402a11
shr eax, 0x12
mov esi, 4
or al, 0xf0
mov byte [ebp - 0xcc], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [ebp - 0xcb], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [ebp - 0xca], al
mov byte [ebp - 0xc9], bl
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
sub ecx, eax
cmp ecx, esi
jb 0x402a48
add eax, dword [ebp - 0x24]
push esi
lea ecx, [ebp - 0xcc]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x20], esi
add ecx, 4
cmp ecx, dword [ebp - 0x40]
jne 0x4027e6
jmp 0x402a5b
push esi
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.00405fa0
add esp, 0xc
mov eax, dword [ebp - 0x20]
jmp 0x402a1d
mov eax, dword [ebp - 0x11c]
test eax, eax
je 0x402a79
shl eax, 2
push 4
push eax
push dword [ebp - 0xd4]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x20]
movsd xmm0, qword [ebp - 0x28]
mov dword [ebp - 0x148], eax
mov eax, dword [ebp - 0x60]
movsd qword [ebp - 0x150], xmm0
test eax, eax
je 0x402aa7
shl eax, 2
push 4
push eax
push dword [ebp - 0x5c]
call fcn.0040d1e0
add esp, 0xc
dec dword [edi]
jne 0x402ac0
dec dword [edi + 4]
jne 0x402ac0
push 8
push 0x158
push edi
call fcn.0040d1e0
add esp, 0xc
lea esi, [ebp - 0x18c]
push 0xc
push 0x5351f0
push 0x30
push 0x5351c0
push esi
call fcn.0040afd0
add esp, 0x14
mov dword [ebp - 0x28], esi
lea eax, [ebp - 0x150]
lea esi, [ebp - 0x28]
lea edi, [ebp - 0xcc]
mov dword [ebp - 0x24], 0x402000
mov dword [ebp - 0xcc], 0x535200
mov dword [ebp - 0xc8], 3
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0xc4], esi
mov dword [ebp - 0x1c], 0x402000
mov dword [ebp - 0xc0], 2
lea eax, [ebp - 0x12c]
push edi
push eax
call fcn.004d1b40
add esp, 8
lea eax, [ebp - 0x138]
push 0xc
push 0x535291
push 0x79
push 0x535218
push eax
call fcn.0040afd0
add esp, 0x14
lea eax, [ebp - 0x15c]
push 0xc
push 0x535321
push 0x84
push 0x53529d
push eax
call fcn.0040afd0
add esp, 0x14
lea eax, [ebp - 0x144]
push 0xc
push 0x53534b
push 0x1e
push 0x53532d
push eax
call fcn.0040afd0
add esp, 0x14
lea eax, [ebp - 0x168]
push 0xc
push 0x53537d
push 0x26
push 0x535357
push eax
call fcn.0040afd0
add esp, 0x14
push 0xc
push 0x53540c
push 0x83
push 0x535389
lea eax, [ebp - 0x10c]
push eax
call fcn.0040afd0
add esp, 0x14
push 0xc
push 0x535439
push 0x21
push 0x535418
lea eax, [ebp - 0x118]
push eax
call fcn.0040afd0
add esp, 0x14
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0xcc], 0
call sub.kernel32.dll_GetCurrentProcess
lea ecx, [ebp - 0x3c]
push ecx
push 8
push eax
call sub.advapi32.dll_OpenProcessToken
test eax, eax
je 0x402e1c
push edi
push 4
push esi
push 0x14
push dword [ebp - 0x3c]
call sub.advapi32.dll_GetTokenInformation
mov esi, eax
push dword [ebp - 0x3c]
call sub.kernel32.dll_CloseHandle
test esi, esi
lea esi, [ebp - 0x28]
je 0x402e1c
cmp dword [ebp - 0x28], 0
je 0x402e1c
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x134]
mov edi, dword [ebp - 0x130]
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xbc], 0x20
mov byte [ebp - 0xac], 3
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0xb4], 0x502000
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x100]
push ecx
push eax
call fcn.004956b0
add esp, 8
test al, al
jne 0x403359
mov eax, dword [ebp - 0x28]
lea esi, [ebp - 0x60]
mov dword [ebp - 0x2c], ebx
mov edx, ebx
mov ecx, esi
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x24]
mov ebx, eax
push dword [ebp - 0x20]
push eax
push edi
call fcn.00401870
add esp, 0xc
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x128]
lea edi, [ebp - 0x3c]
mov ecx, edi
mov dword [ebp - 0x48], edx
push dword [ebp - 0x124]
mov dword [ebp - 0x4c], eax
push eax
push dword [ebp - 0x13c]
call fcn.00401870
add esp, 0xc
lea eax, [ebp - 0x15c]
mov dword [ebp - 0xcc], esi
mov dword [ebp - 0xc8], 0x402000
mov dword [ebp - 0x28], 0x535470
mov dword [ebp - 0x24], 6
mov dword [ebp - 0x18], 0
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x168]
mov dword [ebp - 0xc0], 0x402000
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], 0x402000
mov dword [ebp - 0xb4], eax
lea eax, [ebp - 0x10c]
mov dword [ebp - 0xb0], 0x402000
mov dword [ebp - 0xac], eax
lea eax, [ebp - 0x118]
mov dword [ebp - 0xa8], 0x402000
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xcc]
mov dword [ebp - 0xa0], 0x402000
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x1c], 6
push eax
lea edi, [ebp - 0x174]
push edi
call fcn.004d1b40
add esp, 8
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x402df3
push 1
push eax
push dword [ebp - 0x38]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x402e08
push 1
push eax
push dword [ebp - 0x5c]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x402fd6
push 1
push eax
push ebx
jmp 0x402fce
mov eax, dword [ebp - 0x130]
mov edi, dword [ebp - 0x134]
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 1
mov dword [ebp - 0xb0], 0
mov dword [ebp - 0xbc], 0x20
mov byte [ebp - 0xac], 3
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc4], 0
mov dword [ebp - 0xb8], esi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0xb4], 0x502000
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x100]
push ecx
push eax
call fcn.004956b0
add esp, 8
test al, al
jne 0x403359
mov eax, dword [ebp - 0x28]
lea ebx, [ebp - 0x60]
mov dword [ebp - 0x2c], edi
mov edx, edi
mov ecx, ebx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
push eax
push dword [ebp - 0x40]
call fcn.00401870
add esp, 0xc
mov edx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x128]
lea edi, [ebp - 0x3c]
mov ecx, edi
mov dword [ebp - 0x48], edx
push dword [ebp - 0x124]
mov dword [ebp - 0x4c], eax
push eax
push dword [ebp - 0x13c]
call fcn.00401870
add esp, 0xc
lea eax, [ebp - 0x15c]
lea ecx, [ebp - 0x168]
mov dword [ebp - 0xcc], ebx
mov dword [ebp - 0xc8], 0x402000
lea edx, [ebp - 0x10c]
mov dword [ebp - 0x28], 0x535448
mov dword [ebp - 0x24], 5
mov dword [ebp - 0x18], 0
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xc0], 0x402000
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xb8], 0x402000
mov dword [ebp - 0xb4], ecx
lea ecx, [ebp - 0xcc]
lea edi, [ebp - 0x174]
mov dword [ebp - 0xb0], 0x402000
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xa8], 0x402000
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], 5
push esi
push edi
call fcn.004d1b40
add esp, 8
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x402fac
push 1
push eax
push dword [ebp - 0x38]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x402fc1
push 1
push eax
push dword [ebp - 0x5c]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x402fd6
push 1
push eax
push dword [ebp - 0x44]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [edi]
mov ebx, dword [edi + 4]
mov edi, dword [edi + 8]
mov dword [ebp - 0x40], eax
push 0xc
push 0x5354ba
push 0x1a
push 0x5354a0
lea eax, [ebp - 0x28]
push eax
call fcn.0040afd0
add esp, 0x14
mov esi, dword [ebp - 0x24]
push dword [ebp - 0x20]
push esi
lea eax, [ebp - 0xcc]
push eax
call fcn.004a34c0
add esp, 0xc
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x403024
push 1
push eax
push esi
call fcn.0040d1e0
add esp, 0xc
push edi
mov dword [ebp - 0x44], ebx
push ebx
lea esi, [ebp - 0xcc]
push esi
call fcn.004a35a0
add esp, 0xc
mov dword [ebp - 0x74], 0x8000000
push esi
lea eax, [ebp - 0x28]
push eax
call fcn.00495b50
add esp, 8
mov esi, dword [ebp - 0x28]
cmp esi, 0x80000000
je 0x403373
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x24]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xcc]
mov dword [ebp - 0x50], eax
call fcn.004015d0
test esi, esi
je 0x403088
push 1
push esi
push ebx
call fcn.0040d1e0
add esp, 0xc
test edi, edi
je 0x40309a
push 1
push edi
push dword [ebp - 0x50]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x2c]
test eax, eax
je 0x4030b2
push 1
push eax
push dword [ebp - 0x44]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x118]
mov edi, dword [ebp - 0xf8]
test eax, eax
je 0x4030d3
push 1
push eax
push dword [ebp - 0x114]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x10c]
test eax, eax
je 0x4030ee
push 1
push eax
push dword [ebp - 0x108]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x168]
test eax, eax
je 0x403109
push 1
push eax
push dword [ebp - 0x164]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x144]
test eax, eax
je 0x403121
push 1
push eax
push dword [ebp - 0x48]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x15c]
test eax, eax
je 0x40313c
push 1
push eax
push dword [ebp - 0x158]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x138]
test eax, eax
je 0x403152
push 1
push eax
push ebx
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x40316a
push 1
push eax
push dword [ebp - 0x4c]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x18c]
test eax, eax
je 0x403185
push 1
push eax
push dword [ebp - 0x188]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x4031a0
push 1
push eax
push dword [ebp - 0x14c]
call fcn.0040d1e0
add esp, 0xc
cmp dword [ebp - 0x30], 0
mov eax, dword [ebp - 0xe4]
test eax, eax
je 0x4031bf
push 1
push eax
push dword [ebp - 0xd8]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0xf0]
test eax, eax
je 0x4031e0
push 1
push eax
push dword [ebp - 0xdc]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xe8]
test eax, eax
je 0x4031fb
push 1
push eax
push dword [ebp - 0xd0]
call fcn.0040d1e0
add esp, 0xc
mov eax, dword [ebp - 0xec]
test eax, eax
je 0x403213
push 1
push eax
push dword [ebp - 0x54]
call fcn.0040d1e0
add esp, 0xc
test esi, esi
je 0x403228
push 1
push esi
push dword [ebp - 0x120]
call fcn.0040d1e0
add esp, 0xc
call fcn.00402060
test edi, edi
je 0x40325c
mov eax, dword [ebp - 0xf4]
lea esi, [eax + 4]
jmp 0x403246
add esi, 0xc
dec edi
je 0x40325c
mov eax, dword [esi - 4]
test eax, eax
je 0x403240
push 1
push eax
push dword [esi]
call fcn.0040d1e0
add esp, 0xc
jmp 0x403240
mov eax, dword [ebp - 0x180]
test eax, eax
je 0x40327d
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push dword [ebp - 0xf4]
call fcn.0040d1e0
add esp, 0xc
mov eax, 1
add esp, 0x190
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
call fcn.004966b0
push 0x535578
push dword [ebp - 0x30]
push eax
call fcn.004dc480
push 0x535568
push dword [ebp - 0x30]
push eax
call fcn.004dc480
mov dword [ebp - 0xcc], 4
mov dword [ebp - 0xc8], 0
mov dword [ebp - 0xbc], 0
mov dword [ebp - 0xc4], 4
mov dword [ebp - 0xc0], 0
push 0x535588
lea eax, [ebp - 0xcc]
push eax
call fcn.004dc2b0
push 0x535050
push 0
push 1
call fcn.004dc130
mov ecx, 0x80000000
mov edx, edi
call fcn.004016e0
push 0x5354ec
push 0x13
push str.not_yet_implemented
call fcn.004dc340
lea eax, [ebp - 0x3c]
push 0x50209c
push 0x50212c
push eax
push 0x37
push 0x502018
call fcn.004dc7d0
movsd xmm0, qword [ebp - 0x24]
lea eax, [ebp - 0x3c]
movsd qword [ebp - 0x3c], xmm0
push 0x5351b0
push 0x50213c
push eax
push 0
push 1
call fcn.004dc7d0
push 0x50209c
push 0x50212c
lea eax, [ebp - 0x3c]
push eax
push 0x37
push 0x502018
call fcn.004dc7d0
movsd xmm0, qword [ebp - 0x24]
movsd qword [ebp - 0x3c], xmm0
push 0x5354c8
push 0x50213c
lea eax, [ebp - 0x3c]
push eax
push 0
push 1
call fcn.004dc7d0
nop word cs:[eax + eax]
nop
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x34
call fcn.00403bd0
lea esi, [ebp - 0x40]
push esi
call fcn.00485340
add esp, 4
lea eax, [ebp - 0x24]
push esi
push eax
call fcn.004095a0
add esp, 8
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
lea eax, [eax*4]
mov dword [ebp - 0x14], esi
lea ebx, [eax + eax*2]
jmp 0x4033ea
add esi, 0xc
add ebx, 0xfffffff4
test cl, cl
jne 0x40345d
test ebx, ebx
je 0x4034c2
mov eax, dword [esi + 4]
mov edi, dword [esi + 8]
mov dword [ebp - 0x18], eax
push 0xc
push 0x535042
push 0x1c
push 0x535026
lea eax, [ebp - 0x30]
push eax
call fcn.0040afd0
add esp, 0x14
mov eax, dword [ebp - 0x2c]
cmp edi, dword [ebp - 0x28]
jne 0x403440
push edi
mov edi, eax
push eax
push dword [ebp - 0x18]
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
sete cl
mov eax, dword [ebp - 0x30]
test eax, eax
jne 0x40344b
jmp 0x4033e0
mov edi, eax
xor ecx, ecx
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x4033e0
push 1
push eax
push edi
mov edi, ecx
call fcn.0040d1e0
mov ecx, edi
add esp, 0xc
jmp 0x4033e0
call fcn.00402060
mov ebx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x14]
test ebx, ebx
je 0x40349c
lea esi, [edi + 4]
jmp 0x403486
add esi, 0xc
dec ebx
je 0x40349c
mov eax, dword [esi - 4]
test eax, eax
je 0x403480
push 1
push eax
push dword [esi]
call fcn.0040d1e0
add esp, 0xc
jmp 0x403480
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x4034b5
shl eax, 2
lea eax, [eax + eax*2]
push 4
push eax
push edi
call fcn.0040d1e0
add esp, 0xc
mov eax, 1
add esp, 0x34
pop esi
pop edi
pop ebx
pop ebp
ret
push 0
call fcn.004966b0
nop dword [eax]