Function at 0x402600
Capabilities:
Accept command line arguments
Encode data using xor
Get common file path
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x420
mov dword [ebp - 0xc4], 0x570c
mov dword [ebp - 0x368], 0xdcd2
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x3e8], eax
cmp dword [ebp - 0x3e8], 0x9a3
je 0x402637
jmp 0x402659
mov ecx, dword [ebp - 0x368]
add ecx, 0x7b3a
mov dword [ebp - 0x368], ecx
mov ecx, dword [ebp - 0xc4]
call fcn.00401b30
jmp 0x404913
mov byte [ebp - 0x3c1], 0x97
mov edx, dword [ebp - 0x368]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x54]
imul eax, eax, 0x718e
cmp eax, dword [ebp - 0x368]
ja 0x402698
mov ecx, dword [ebp - 0x368]
and ecx, 0x41d7
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x54]
or edx, 0xbbf6
mov dword [ebp - 0x368], edx
mov dword [ebp - 0x3bc], 0x77ae
mov dword [ebp - 0x3b4], 0x5f47
lea eax, [ebp - 0x3c1]
mov dword [ebp - 0xd0], eax
mov ecx, 0x442
mov word [ebp - 0x364], cx
mov byte [ebp - 0x3d5], 0x2e
lea edx, [ebp - 0x3d5]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x368]
mov dword [ebp - 0x3ec], eax
cmp dword [ebp - 0x3ec], 0x38aa
je 0x4026f1
jmp 0x4027af
mov ecx, dword [ebp - 0x368]
add ecx, 0xa888
mov dword [ebp - 0x54], ecx
lea edx, [ebp - 0x3c1]
push edx
mov eax, dword [ebp - 0xcc]
push eax
mov ecx, dword [ebp - 0x33c]
push ecx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x3f0], edx
cmp dword [ebp - 0x3f0], 0x2d53
je 0x402758
cmp dword [ebp - 0x3f0], 0x7785
je 0x402744
jmp 0x402790
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
shl ecx, 6
mov byte [ebp - 0x3c1], cl
jmp 0x402790
movsx edx, byte [ebp - 0x3d5]
sub edx, 0x17
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
movzx ecx, word [ebp - 0x364]
push ecx
mov edx, dword [ebp - 0xc4]
push edx
movzx eax, word [ebp - 0x364]
push eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
push edx
call fcn.00401ea0
add esp, 0x10
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3c1]
add ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
jmp 0x404883
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x20], ecx
movzx edx, word [ebp - 0x364]
mov dword [ebp - 0x3f4], edx
cmp dword [ebp - 0x3f4], 0x442
je 0x4027e3
cmp dword [ebp - 0x3f4], 0x7b8
je 0x404790
jmp 0x40482c
movzx eax, word [ebp - 0x364]
cmp eax, 0xcda
jl 0x40282c
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
add edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
movzx edx, word [ebp - 0x364]
push edx
movzx eax, byte [ebp - 0x3c1]
push eax
push 0x8f
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.004024e0
add esp, 0x10
movzx edx, byte [ebp - 0x3c1]
sub edx, 0x19
mov eax, dword [ebp - 0xd0]
mov byte [eax], dl
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x3d5]
add edx, eax
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp - 0xc4]
or edx, 0x20cb
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x20]
xor eax, dword [ebp - 0x54]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0x3d5]
sar edx, cl
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
mov ecx, dword [ebp - 0xc4]
shl ecx, 0x15
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
and eax, 0xc3
mov byte [ebp - 0x3c1], al
movzx ecx, word [ebp - 0x364]
sub ecx, 0xdc6
mov word [ebp - 0x364], cx
movsx edx, byte [ebp - 0x3d5]
add edx, 0x1a
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
movzx ecx, word [ebp - 0x364]
add ecx, 0xf82
mov word [ebp - 0x364], cx
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0x368], edx
mov eax, dword [ebp - 0xc4]
add eax, 0x2961
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
and edx, 0x59
mov byte [ebp - 0x3c1], dl
movzx eax, word [ebp - 0x364]
sub eax, 0xd04
mov word [ebp - 0x364], ax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
sub edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xc4]
add edx, 0x71ec
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
xor eax, 0xba8
mov dword [ebp - 0xc4], eax
movzx ecx, byte [ebp - 0x3c1]
shl ecx, 3
mov edx, dword [ebp - 0xd0]
mov byte [edx], cl
movzx eax, word [ebp - 0x364]
or eax, 0xac5
mov word [ebp - 0x364], ax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x3c1]
sar edx, cl
mov eax, dword [ebp - 0xd0]
mov byte [eax], dl
mov ecx, dword [ebp - 0xc4]
and ecx, 0x7802
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
sub edx, 0x5348
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x3b4]
sub eax, 0x8b
mov dword [ebp - 0x3b4], eax
mov ecx, dword [ebp - 0x368]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xc4]
sub edx, 0xb22
mov dword [ebp - 0xc4], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0xc4]
add eax, 0x5391
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
add edx, 0x4e
mov byte [ebp - 0x3d5], dl
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x20]
mov dword [ebp - 0x368], eax
movzx ecx, word [ebp - 0x364]
and ecx, 0xab1
mov word [ebp - 0x364], cx
movzx edx, byte [ebp - 0x3c1]
add edx, 0x80
mov eax, dword [ebp - 0xd0]
mov byte [eax], dl
mov edx, dword [ebp - 0x368]
mov ecx, dword [ebp - 0x20]
shl edx, cl
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3c1]
or ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
movzx ecx, word [ebp - 0x364]
sar ecx, 7
mov word [ebp - 0x364], cx
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
xor eax, 0x25
mov byte [ebp - 0x3c1], al
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x3d5]
sub edx, eax
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], dl
lea edx, [ebp - 0x44]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0xc4]
and eax, 0x57dd
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xc4]
sub ecx, 0x1045
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0x368]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x54], edx
movsx eax, byte [ebp - 0x3d5]
add eax, 0x33
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], al
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
sub eax, 0x4e
mov byte [ebp - 0x3c1], al
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0x3d5]
add edx, eax
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp - 0xc4]
sub edx, 0x4e2
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
sub ecx, 0x44
mov byte [ebp - 0x3d5], cl
cmp dword [ebp - 0x3b4], 0x2bb2
jae 0x40282c
mov edx, 0x161
mov word [ebp - 0x3b0], dx
movsx eax, word [ebp - 0x3b0]
mov dword [ebp - 0x3f8], eax
cmp dword [ebp - 0x3f8], 0x161
je 0x402b81
cmp dword [ebp - 0x3f8], 0x46b
je 0x402bb3
jmp 0x402bd1
mov cx, word [ebp - 0x364]
mov word [ebp - 8], cx
mov dword [ebp - 0x338], 0xc7ce
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0xc4]
and edx, 0x427c
mov dword [section..data], edx
jmp 0x402bd1
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
or ecx, 4
mov byte [ebp - 0x3c1], cl
mov edx, dword [ebp - 0x54]
xor edx, dword [ebp - 0x20]
mov dword [ebp - 0x368], edx
lea eax, [ebp - 0x54]
mov dword [ebp - 0xd4], eax
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x3fc], ecx
cmp dword [ebp - 0x3fc], 0xffffefde
je 0x402c07
cmp dword [ebp - 0x3fc], 0x3c18
je 0x4046fa
jmp 0x404786
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
add eax, 0x92
movzx ecx, byte [ebp - 0x3c1]
cmp eax, ecx
jg 0x402c71
movzx edx, word [ebp - 0x364]
sub edx, 0x226
movzx eax, word [ebp - 8]
cmp edx, eax
jl 0x402c71
mov ecx, dword [ebp - 0xc4]
sub ecx, 0x6ac2
mov dword [section..data], ecx
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3c1]
add eax, ecx
mov edx, dword [ebp - 0xd0]
mov byte [edx], al
mov eax, dword [section..data]
sub eax, 0x7112
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x20]
add edx, dword [ecx]
mov dword [ebp - 0x54], edx
mov al, byte [ebp - 0x3c1]
mov byte [ebp - 0x3d6], al
mov cx, word [ebp - 8]
mov word [ebp - 0x10], cx
mov dword [ebp - 0xb4], 0xe8ee
mov dl, byte [ebp - 0x3d5]
mov byte [ebp - 0xa1], dl
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x37c], eax
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x48], 0xe6c1
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], edx
mov al, byte [ebp - 0x3d6]
mov byte [ebp - 0x331], al
mov ecx, dword [section..data]
mov dword [ebp - 0x400], ecx
cmp dword [ebp - 0x400], 0x6c7d
je 0x402cf4
jmp 0x402d28
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 8]
sub edx, eax
mov word [ebp - 0x10], dx
mov ecx, dword [ebp - 0xb8]
or ecx, dword [section..data]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0x20]
xor edx, dword [ebp - 0x54]
mov dword [ebp - 0x368], edx
jmp 0x4046de
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x380], eax
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0x380]
sar edx, cl
mov dword [ebp - 0xb8], edx
movzx eax, byte [ebp - 0x3d6]
movzx ecx, byte [ebp - 0x331]
shl eax, cl
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], al
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 8]
and edx, eax
mov word [ebp - 0x10], dx
mov ecx, dword [ebp - 0xb8]
add ecx, dword [ebp - 0x380]
mov dword [section..data], ecx
mov edx, dword [ebp - 0x380]
add edx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xc4]
and eax, dword [ebp - 0x380]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xc4]
sub ecx, dword [ebp - 0xb8]
mov dword [ebp - 0x380], ecx
movzx edx, byte [ebp - 0x3c1]
movzx eax, byte [ebp - 0x3d6]
add edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
movsx edx, byte [ebp - 0xa1]
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x3d5], dl
mov edx, dword [ebp - 0x37c]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x3b0]
add eax, ecx
mov edx, dword [ebp - 0x37c]
mov word [edx], ax
movzx eax, word [ebp - 8]
movzx ecx, word [ebp - 0x10]
sub eax, ecx
mov word [ebp - 0x364], ax
movzx edx, byte [ebp - 0x3c1]
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
xor edx, ecx
mov byte [ebp - 0x331], dl
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xb8]
shl edx, cl
mov dword [section..data], edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x54]
shr edx, cl
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
movzx ecx, byte [ebp - 0x3d6]
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
or ecx, eax
mov byte [ebp - 0x3c1], cl
movzx ecx, byte [ebp - 0x331]
movzx edx, byte [ebp - 0x3d6]
and ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
mov ecx, dword [ebp - 0xb8]
add ecx, dword [section..data]
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
mov edx, dword [ebp - 0xb8]
add edx, dword [section..data]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0x380]
mov dword [ebp - 0xc4], eax
movzx ecx, word [ebp - 8]
movzx edx, word [ebp - 0x364]
and ecx, edx
mov word [ebp - 0x10], cx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0x380]
mov dword [section..data], eax
mov ecx, dword [ebp - 0x338]
add ecx, 0x84
mov dword [ebp - 0x338], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
add eax, dword [ebp - 0x368]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x3b0]
sub edx, eax
mov ecx, dword [ebp - 0x37c]
mov word [ecx], dx
movsx edx, word [ebp - 0x3b0]
add edx, 0x29b
mov eax, dword [ebp - 0x37c]
mov word [eax], dx
movsx edx, byte [ebp - 0x3d5]
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
shl edx, cl
mov byte [ebp - 0xa1], dl
movzx ecx, byte [ebp - 0x3d6]
movzx edx, byte [ebp - 0x3c1]
xor ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
movzx edx, word [ebp - 0x364]
movzx ecx, word [ebp - 0x10]
sar edx, cl
mov word [ebp - 8], dx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x368]
mov dword [ebp - 0x20], ecx
mov edx, dword [ebp - 0xb8]
and edx, dword [ebp - 0x380]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0x380]
add eax, dword [ebp - 0xb8]
mov dword [section..data], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
sub edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xb8]
add ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3c1]
sub eax, ecx
mov byte [ebp - 0x3d6], al
movzx edx, word [ebp - 0x10]
movzx eax, word [ebp - 0x364]
add edx, eax
mov word [ebp - 8], dx
mov ecx, dword [ebp - 0xc4]
and ecx, dword [section..data]
mov dword [ebp - 0xb8], ecx
cmp dword [ebp - 0x338], 0xe29e
jbe 0x402d34
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x60]
mov dword [ebp - 0x20], eax
mov ecx, dword [section..data]
mov dword [ebp - 0xc0], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
add eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x60]
cmp eax, ecx
jae 0x4030d0
mov edx, dword [ebp - 0x37c]
movsx eax, word [edx]
add eax, 0x645
mov word [ebp - 0x3b0], ax
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx eax, byte [ebp - 0xa1]
sub edx, eax
movsx ecx, byte [ebp - 0x3d5]
cmp edx, ecx
jne 0x4030a3
mov edx, dword [ebp - 0x4c]
movzx eax, byte [edx]
push eax
movzx ecx, byte [ebp - 0xa1]
push ecx
movzx edx, byte [ebp - 0x3d5]
push edx
call fcn.00401840
add esp, 0xc
jmp 0x4030cb
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0x3d5]
sub ecx, edx
mov byte [ebp - 0xa1], cl
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
jmp 0x404658
mov eax, dword [ebp - 0xc4]
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
and edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x3d5]
sub eax, ecx
mov edx, dword [ebp - 0x4c]
mov byte [edx], al
mov eax, dword [ebp - 0x54]
or eax, dword [ebp - 0x368]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x380]
shl edx, cl
mov dword [section..data], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x331]
xor ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x20]
shr edx, cl
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
movzx ecx, word [ebp - 8]
movzx edx, word [ebp - 0x10]
sub ecx, edx
mov word [ebp - 0x364], cx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3c1]
and ecx, edx
mov byte [ebp - 0x331], cl
mov eax, dword [ebp - 0xc0]
add eax, dword [ebp - 0x380]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0xb4]
add ecx, 0x74
mov dword [ebp - 0xb4], ecx
mov edx, dword [ebp - 0xc4]
sub edx, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x54]
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0xc0]
add ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xc4]
sub edx, dword [ebp - 0xb8]
mov dword [section..data], edx
mov eax, dword [ebp - 0x37c]
movsx ecx, word [eax]
add ecx, 0x596
mov word [ebp - 0x3b0], cx
movsx edx, byte [ebp - 0xa1]
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0x3d5], dl
movzx edx, word [ebp - 8]
movzx eax, word [ebp - 0x10]
and edx, eax
mov word [ebp - 0x364], dx
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x331]
shl edx, cl
mov byte [ebp - 0x3d6], dl
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
or ecx, dword [ebp - 0x20]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x380]
mov ecx, dword [ebp - 0xb8]
sar edx, cl
mov dword [ebp - 0xc4], edx
movzx eax, byte [ebp - 0x331]
movzx ecx, byte [ebp - 0x3c1]
xor eax, ecx
mov byte [ebp - 0x3d6], al
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 8]
sub edx, eax
mov word [ebp - 0x10], dx
mov ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
mov eax, dword [ebp - 0xc4]
and eax, dword [section..data]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
add eax, dword [ebp - 0x368]
mov dword [ebp - 0x60], eax
movzx ecx, byte [ebp - 0x3d6]
movzx edx, byte [ebp - 0x3c1]
sub ecx, edx
mov byte [ebp - 0x331], cl
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc0]
add edx, dword [section..data]
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0x380]
mov dword [ebp - 0xc0], eax
movsx ecx, byte [ebp - 0xa1]
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x3d5], cl
cmp dword [ebp - 0xb4], 0xf35a
jbe 0x4030e2
mov edx, dword [ebp - 0xc4]
add edx, dword [ebp - 0xc0]
mov eax, dword [section..data]
mov ecx, dword [ebp - 0x380]
sar eax, cl
cmp edx, eax
jle 0x403381
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
shl edx, cl
mov dword [section..data], edx
movzx eax, word [ebp - 8]
push eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
mov cl, byte [ebp - 0x3d5]
call fcn.004014b0
mov dx, word [ebp - 0x364]
mov word [ebp - 0xa0], dx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x331]
xor ecx, edx
mov byte [ebp - 0x3d6], cl
cmp dword [ebp - 0x48], 0x10adc
jae 0x4035db
lea eax, [ebp - 0x360]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
or edx, dword [ebp - 0x20]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x60]
and ecx, dword [eax]
mov dword [ebp - 0x54], ecx
mov edx, dword [section..data]
add edx, dword [ebp - 0x380]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0xc4]
sub eax, dword [section..data]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x48]
add ecx, 0xed
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0xc4]
and edx, dword [ebp - 0xb8]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3d6]
add ecx, edx
mov byte [ebp - 0x331], cl
mov eax, dword [ebp - 0xc0]
sub eax, dword [ebp - 0x380]
mov dword [section..data], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x368]
add edx, dword [ecx]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc0]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0xc4]
sub ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x20]
shr eax, cl
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
xor edx, eax
mov byte [ebp - 0x331], dl
movzx edx, word [ebp - 0xa0]
movzx ecx, word [ebp - 8]
shl edx, cl
mov word [ebp - 0x364], dx
mov eax, dword [ebp - 0x37c]
movsx ecx, word [eax]
or ecx, 0x336
mov word [ebp - 0x3b0], cx
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x3d5]
and eax, ecx
mov byte [ebp - 0xa1], al
mov edx, dword [ebp - 0x20]
sub edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc4]
sub ecx, dword [ebp - 0xb8]
mov dword [section..data], ecx
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 0xa0]
add edx, eax
mov word [ebp - 8], dx
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3d6]
add edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
and eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xd4]
mov dword [ecx], eax
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
add ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x380], ecx
movsx edx, byte [ebp - 0x3d5]
movsx eax, byte [ebp - 0xa1]
sub edx, eax
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], dl
movzx edx, byte [ebp - 0x331]
movzx eax, byte [ebp - 0x3c1]
sub edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov dword [ebp - 0x200], 0x114
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 8]
xor edx, eax
mov word [ebp - 0x10], dx
mov ecx, dword [ebp - 0xb8]
or ecx, dword [ebp - 0xc0]
mov dword [section..data], ecx
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xb8]
sar edx, cl
mov dword [ebp - 0x380], edx
jmp 0x4033a7
mov eax, dword [section..data]
mov ecx, dword [ebp - 0xc0]
shl eax, cl
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x3bc]
add ecx, 0x85
mov dword [ebp - 0x3bc], ecx
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
movsx ecx, byte [ebp - 0x3d5]
and eax, ecx
mov edx, dword [ebp - 0x4c]
mov byte [edx], al
mov eax, dword [ebp - 0x380]
add eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], eax
movsx ecx, byte [ebp - 0xa1]
movsx edx, byte [ebp - 0x3d5]
add ecx, edx
mov eax, dword [ebp - 0x4c]
mov byte [eax], cl
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
add edx, 0x1ee
mov word [ebp - 0x3b0], dx
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 0x364]
sub eax, ecx
mov word [ebp - 0xa0], ax
movzx edx, byte [ebp - 0x3d6]
movzx eax, byte [ebp - 0x331]
sub edx, eax
mov byte [ebp - 0x3c1], dl
mov ecx, dword [ebp - 0xb8]
and ecx, dword [ebp - 0x380]
mov dword [section..data], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x368]
mov dword [ebp - 0x54], eax
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0x364]
add ecx, edx
mov word [ebp - 8], cx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x331]
sub ecx, edx
mov byte [ebp - 0x3d6], cl
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x60]
shr edx, cl
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x368]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x380]
or eax, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
xor edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3d6]
and eax, ecx
mov byte [ebp - 0x3c1], al
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x70], eax
movsx edx, byte [ebp - 0x3d5]
movsx eax, byte [ebp - 0xa1]
add edx, eax
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], dl
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [section..data]
mov dword [ebp - 0xc0], ecx
movsx edx, byte [ebp - 0xa1]
mov eax, dword [ebp - 0x4c]
movsx ecx, byte [eax]
add edx, ecx
mov byte [ebp - 0x3d5], dl
mov edx, dword [ebp - 0x37c]
movsx eax, word [edx]
sub eax, 0x533
mov word [ebp - 0x3b0], ax
movzx ecx, word [ebp - 0x364]
movzx edx, word [ebp - 0x10]
sub ecx, edx
mov word [ebp - 8], cx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3d6]
and ecx, edx
mov eax, dword [ebp - 0xd0]
mov byte [eax], cl
mov ecx, dword [ebp - 0x368]
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x60], ecx
mov edx, dword [section..data]
xor edx, dword [ebp - 0x380]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0x4c]
movsx edx, byte [eax]
movsx ecx, byte [ebp - 0x3d5]
sar edx, cl
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
mov ecx, dword [ebp - 0x20]
or ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
movsx eax, byte [ebp - 0xa1]
movsx ecx, byte [ebp - 0x3d5]
shl eax, cl
mov ecx, dword [ebp - 0x4c]
mov byte [ecx], al
movzx edx, word [ebp - 0xa0]
movzx eax, word [ebp - 0x364]
add edx, eax
mov word [ebp - 0x10], dx
cmp dword [ebp - 0x3bc], 0x975f
jb 0x4035db
mov ecx, dword [ebp - 0x54]
and ecx, dword [ebp - 0x368]
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x20]
add eax, dword [edx]
cmp ecx, eax
je 0x403871
mov ecx, dword [ebp - 0xc0]
sub ecx, dword [ebp - 0xb8]
mov dword [ebp - 0xc4], ecx
jmp 0x4045d7
mov edx, dword [ebp - 0xc4]
and edx, dword [ebp - 0xb8]
mov dword [ebp - 0x380], edx
mov dword [ebp - 0x210], 0xf33e
movzx eax, word [ebp - 0xa0]
movzx ecx, word [ebp - 0x364]
xor eax, ecx
movzx edx, word [ebp - 8]
movzx ecx, word [ebp - 0x10]
shl edx, cl
cmp eax, edx
jl 0x403968
mov eax, dword [section..data]
or eax, dword [ebp - 0xc0]
mov edx, dword [ebp - 0x380]
mov ecx, dword [ebp - 0xc4]
sar edx, cl
cmp eax, edx
jne 0x403939
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x404], eax
cmp dword [ebp - 0x404], 0
je 0x4038ef
cmp dword [ebp - 0x404], 0x7356
je 0x40392b
jmp 0x403939
mov cx, word [ebp - 8]
mov word [ebp - 0xac], cx
movzx edx, byte [ebp - 0x331]
movzx eax, byte [ebp - 0x3d6]
add edx, eax
mov byte [ebp - 0x3c1], dl
lea ecx, [ebp - 0x3d5]
mov dword [ebp - 0x20c], ecx
mov edx, dword [ebp - 0x37c]
mov ax, word [edx]
mov word [ebp - 0x64], ax
jmp 0x403939
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
add edx, dword [ebp - 0x60]
mov dword [ebp - 0x54], edx
lea eax, [ebp - 0x380]
mov dword [ebp - 0x50], eax
mov cl, byte [ebp - 0x3d6]
mov byte [ebp - 0x212], cl
movzx edx, word [ebp - 0x364]
movzx eax, word [ebp - 0x10]
and edx, eax
mov word [ebp - 8], dx
mov ecx, dword [ebp - 0x60]
sub ecx, dword [ebp - 0x20]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xc4]
add eax, dword [edx]
mov ecx, dword [ebp - 0x380]
sub ecx, dword [ebp - 0xc0]
cmp eax, ecx
jge 0x403998
mov edx, dword [ebp - 0x50]
mov eax, dword [edx]
sub eax, dword [ebp - 0xb8]
mov ecx, dword [ebp - 0x50]
mov dword [ecx], eax
jmp 0x4045b6
lea edx, [ebp - 0xb8]
mov dword [ebp - 0x3cc], edx
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x3b8], eax
movzx ecx, byte [ebp - 0x331]
movzx edx, byte [ebp - 0x3c1]
sub ecx, edx
mov byte [ebp - 0x212], cl
mov ax, word [ebp - 0xa0]
mov word [ebp - 0x5c], ax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0xc0]
xor ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x380], ecx
cmp dword [ebp - 0x210], 0xd0f4
jbe 0x403ca7
mov edx, dword [ebp - 0x50]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc4]
shl eax, cl
mov dword [section..data], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x380]
sar edx, cl
mov eax, dword [ebp - 0x50]
mov dword [eax], edx
mov ecx, dword [ebp - 0xc0]
or ecx, dword [ebp - 0xc4]
mov edx, dword [ebp - 0x50]
mov dword [edx], ecx
mov eax, dword [ebp - 0x37c]
movsx ecx, word [eax]
movsx edx, word [ebp - 0x64]
and ecx, edx
mov word [ebp - 0x3b0], cx
movsx eax, byte [ebp - 0x3d5]
movsx ecx, byte [ebp - 0xa1]
add eax, ecx
mov edx, dword [ebp - 0x20c]
mov byte [edx], al
movzx eax, byte [ebp - 0x212]
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x3c1], al
movsx eax, byte [ebp - 0x3d5]
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
and eax, edx
mov ecx, dword [ebp - 0x20c]
mov byte [ecx], al
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x54]
sub eax, dword [edx]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
sub edx, dword [ebp - 0xc0]
mov dword [section..data], edx
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 0x364]
add eax, ecx
mov word [ebp - 0xac], ax
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x20]
add eax, dword [edx]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc0]
shl edx, cl
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x3cc]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x380]
sar edx, cl
mov eax, dword [ebp - 0x3cc]
mov dword [eax], edx
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
or edx, dword [ebp - 0x54]
mov dword [ebp - 0x60], edx
movzx eax, word [ebp - 0x10]
movzx ecx, word [ebp - 8]
xor eax, ecx
mov word [ebp - 0xac], ax
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x331]
and eax, ecx
mov edx, dword [ebp - 0xd0]
mov byte [edx], al
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x3cc]
add ecx, dword [edx]
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebp - 0x380]
sub eax, dword [ebp - 0xc4]
mov dword [section..data], eax
movsx ecx, byte [ebp - 0x3d5]
mov edx, dword [ebp - 0x20c]
movsx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0xa1], cl
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x64]
add edx, eax
mov word [ebp - 0x3b0], dx
movzx ecx, word [ebp - 0x10]
movzx edx, word [ebp - 0xac]
and ecx, edx
mov word [ebp - 0x5c], cx
movzx eax, byte [ebp - 0x212]
movzx ecx, byte [ebp - 0x331]
sub eax, ecx
mov byte [ebp - 0x3d6], al
mov edx, dword [ebp - 0x20]
add edx, dword [ebp - 0x3b8]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0xd4]
mov dword [edx], ecx
mov eax, dword [ebp - 0xb8]
sub eax, dword [ebp - 0xc4]
mov dword [ebp - 0x380], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ecx]
or eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc0]
shl edx, cl
mov eax, dword [ebp - 0x50]
mov dword [eax], edx
mov ecx, dword [ebp - 0x210]
sub ecx, 0xd1
mov dword [ebp - 0x210], ecx
movzx edx, word [ebp - 0xa0]
movzx ecx, word [ebp - 0xac]
sar edx, cl
mov word [ebp - 0x5c], dx
movzx eax, byte [ebp - 0x3c1]
movzx ecx, byte [ebp - 0x3d6]
xor eax, ecx
mov edx, dword [ebp - 0xd0]
mov byte [edx], al
mov eax, dword [ebp - 0x368]
and eax, dword [ebp - 0x20]
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0xc4]
sub edx, dword [ecx]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x60]
add edx, dword [ebp - 0x54]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
jmp 0x4039f3
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
movsx eax, word [ebp - 0x3b0]
sub edx, eax
movsx ecx, word [ebp - 0x64]
cmp edx, ecx
jl 0x403d15
mov dword [ebp - 0x330], 0x114
mov dx, word [ebp - 0x5c]
mov word [ebp - 0x68], dx
lea eax, [ebp - 0x212]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x37c]
mov dx, word [ecx]
mov word [ebp - 0x36c], dx
mov eax, dword [ebp - 0x20c]
mov cl, byte [eax]
mov byte [0x411c62], cl
lea edx, [ebp - 0x94]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea eax, [ebp - 0xa1]
mov dword [ebp - 0x9c], eax
jmp 0x403d83
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x50]
add edx, dword [eax]
mov ecx, dword [ebp - 0x380]
sub ecx, dword [ebp - 0xc4]
cmp edx, ecx
jl 0x403d43
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
sub eax, dword [ebp - 0x3b8]
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0xc0]
xor ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0x20c]
movsx eax, byte [edx]
mov ecx, dword [ebp - 0x9c]
movsx ecx, byte [ecx]
sar eax, cl
mov edx, dword [ebp - 0x4c]
mov byte [edx], al
mov eax, dword [ebp - 0x6c]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x3c1]
shl edx, cl
mov byte [ebp - 0x3d6], dl
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
or ecx, dword [ebp - 0xc0]
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
and eax, dword [ebp - 0x368]
mov ecx, dword [ebp - 0x60]
add ecx, dword [ebp - 0x54]
cmp eax, ecx
jb 0x403f0d
mov edx, dword [ebp - 0x54]
mov dword [ebp - 0x3c8], edx
mov eax, dword [ebp - 0xc0]
add eax, dword [ebp - 0xb8]
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0xb8]
add edx, dword [ecx]
mov dword [0x411004], edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x3a8], eax
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
mov dword [ebp - 0x408], edx
cmp dword [ebp - 0x408], 0x39f
je 0x403e05
jmp 0x403e76
mov eax, dword [ebp - 0x37c]
movsx ecx, word [eax]
mov dword [ebp - 0x40c], ecx
cmp dword [ebp - 0x40c], 0x1d4
je 0x403e2e
cmp dword [ebp - 0x40c], 0x5b8
je 0x403e60
jmp 0x403e71
movzx edx, byte [ebp - 0x3d6]
movzx eax, byte [ebp - 0x212]
add edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
movzx edx, word [ebp - 0x5c]
push edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov cl, byte [ebp - 0x3d5]
call fcn.004014b0
jmp 0x403e71
movzx ecx, word [ebp - 0xac]
movzx edx, word [ebp - 0x68]
and ecx, edx
mov word [ebp - 0x10], cx
jmp 0x403f0b
mov eax, dword [ebp - 0xd0]
movzx edx, byte [eax]
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [eax]
sub edx, ecx
movzx eax, byte [ebp - 0x3d6]
movzx ecx, byte [ebp - 0x331]
shl eax, cl
cmp edx, eax
jl 0x403ece
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x54]
or edx, dword [ecx]
mov dword [ebp - 0x3b8], edx
lea eax, [ebp - 0x380]
mov dword [ebp - 0x3dc], eax
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3a8]
sub edx, dword [ecx]
mov dword [ebp - 0xc4], edx
jmp 0x403ef5
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x50]
mov edx, dword [eax]
and edx, dword [ecx]
mov dword [ebp - 0x380], edx
mov eax, dword [ebp - 0x3dc]
mov ecx, dword [ebp - 0xb8]
add ecx, dword [eax]
mov dword [ebp - 0xc4], ecx
movzx edx, byte [ebp - 0x212]
movzx eax, byte [ebp - 0x331]
add edx, eax
mov byte [0x411008], dl
jmp 0x403f57
movzx ecx, byte [ebp - 0x3c1]
mov edx, dword [ebp - 0x6c]
movzx eax, byte [edx]
sub ecx, eax
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx edx, byte [ebp - 0x3d6]
sub eax, edx
cmp ecx, eax
jle 0x403f57
movzx eax, word [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
push edx
movzx eax, word [ebp - 0xac]
push eax
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx]
push edx
call fcn.00401ea0
add esp, 0x10
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x3c0], eax
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x14], eax
mov cl, byte [ebp - 0x3d5]
mov byte [ebp - 0x371], cl
mov edx, dword [ebp - 0x6c]
mov al, byte [edx]
mov byte [ebp - 0x410], al
cmp byte [ebp - 0x410], 0
je 0x403f97
jmp 0x40403a
mov cx, word [ebp - 0x68]
mov word [ebp - 0x378], cx
mov edx, dword [ebp - 0x6c]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
add eax, edx
mov byte [ebp - 0x212], al
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x3b8]
mov dword [ebp - 0x414], ecx
cmp dword [ebp - 0x414], 0
je 0x403fd6
jmp 0x404015
mov edx, dword [ebp - 0x3c8]
mov dword [ebp - 0x3ac], edx
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
sub ecx, eax
mov byte [ebp - 0x3d6], cl
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0x3e0], ecx
mov dx, word [ebp - 0x364]
mov word [0x411c60], dx
jmp 0x40402b
mov eax, dword [ebp - 0x3cc]
mov ecx, dword [ebp - 0x3a8]
sub ecx, dword [eax]
mov edx, dword [ebp - 0x3dc]
mov dword [edx], ecx
mov dword [ebp - 0xa8], 0x9217
jmp 0x4040f2
mov eax, dword [ebp - 0xd4]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x20]
mov dword [ebp - 0x3b8], ecx
movsx edx, word [ebp - 0x3b0]
movsx eax, word [ebp - 0x36c]
sub edx, eax
mov ecx, dword [ebp - 0x14]
movsx eax, word [ecx]
movsx ecx, word [ebp - 0x64]
and eax, ecx
cmp edx, eax
je 0x4040e5
mov edx, dword [ebp - 0x50]
mov eax, dword [0x411004]
mov ecx, dword [edx]
sar eax, cl
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x3dc]
mov eax, dword [ecx]
mov ecx, dword [edx]
shl eax, cl
mov dword [ebp - 0xc0], eax
movzx ecx, byte [ebp - 0x212]
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x331], cl
lea ecx, [ebp - 0xbc]
push ecx
mov edx, dword [ebp - 0xcc]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0x204], eax
mov ecx, dword [ebp - 0x3e0]
movzx edx, word [ecx]
movzx eax, word [ebp - 8]
sub edx, eax
mov ecx, dword [ebp - 0x3e0]
mov word [ecx], dx
jmp 0x4040f2
mov edx, dword [ebp - 0x3cc]
mov ecx, dword [edx]
call fcn.00401b30
mov eax, dword [ebp - 0x20]
and eax, dword [ebp - 0x60]
mov dword [ebp - 0x3ac], eax
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0xdc], ecx
mov edx, dword [ebp - 0x37c]
movsx eax, word [edx]
movsx ecx, word [ebp - 0x36c]
sub eax, ecx
mov word [ebp - 0x3b0], ax
mov dl, byte [ebp - 0xa1]
mov byte [ebp - 0x211], dl
mov eax, dword [ebp - 0x9c]
movsx ecx, byte [eax]
movsx edx, byte [ebp - 0xa1]
add ecx, edx
mov eax, dword [ebp - 0x20c]
movsx edx, byte [eax]
mov eax, dword [ebp - 0x4c]
movsx eax, byte [eax]
add edx, eax
cmp ecx, edx
je 0x404170
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3a8]
mov ecx, dword [ecx]
shl edx, cl
mov eax, dword [ebp - 0x50]
mov dword [eax], edx
jmp 0x404555
lea ecx, [ebp - 0x3ac]
mov dword [ebp - 0x3d4], ecx
lea edx, [ebp - 0x3a4]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x3cc]
mov edx, dword [eax]
mov ecx, dword [section..data]
sar edx, cl
mov dword [ebp - 0xc4], edx
cmp dword [ebp - 0xa8], 0xe677
ja 0x4044c0
mov eax, dword [ebp - 0x6c]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
xor ecx, eax
mov byte [ebp - 0x212], cl
movzx ecx, word [ebp - 0x68]
movzx edx, word [ebp - 0x378]
and ecx, edx
mov word [ebp - 0xa0], cx
mov eax, dword [0x411004]
sub eax, dword [ebp - 0x3a8]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x368]
add edx, dword [ecx]
mov eax, dword [ebp - 0x3d4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0x3a8]
and edx, dword [ecx]
mov eax, dword [ebp - 0x3cc]
mov dword [eax], edx
lea ecx, [ebp - 0x44]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [ebp - 0x3cc]
mov eax, dword [ebp - 0x3a8]
sub eax, dword [edx]
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx]
movzx eax, byte [0x411008]
sub edx, eax
mov byte [ebp - 0x212], dl
movzx ecx, word [ebp - 8]
movzx edx, word [ebp - 0xac]
add ecx, edx
mov eax, dword [ebp - 0x3e0]
mov word [eax], cx
movsx ecx, byte [ebp - 0xa1]
movsx edx, byte [ebp - 0x3d5]
add ecx, edx
mov byte [ebp - 0x371], cl
movsx eax, word [ebp - 0x64]
mov ecx, dword [ebp - 0x14]
movsx edx, word [ecx]
add eax, edx
mov ecx, dword [ebp - 0x37c]
mov word [ecx], ax
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x60]
xor eax, dword [edx]
mov dword [ebp - 0x54], eax
mov edx, dword [0x411004]
mov ecx, dword [ebp - 0xc4]
shl edx, cl
mov eax, dword [ebp - 0x3cc]
mov dword [eax], edx
movzx edx, byte [ebp - 0x331]
movzx ecx, byte [ebp - 0x3c1]
sar edx, cl
mov byte [ebp - 0x3d6], dl
mov eax, dword [ebp - 0x3e0]
movzx ecx, word [eax]
movzx edx, word [0x411c60]
or ecx, edx
mov word [ebp - 0x68], cx
mov eax, dword [ebp - 0x3ac]
and eax, dword [ebp - 0x20]
mov dword [ebp - 0x368], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
sub edx, dword [section..data]
mov eax, dword [ebp - 0x3dc]
mov dword [eax], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
add edx, dword [ebp - 0x3a8]
mov dword [0x411004], edx
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x3d4]
mov dword [edx], ecx
mov eax, dword [ebp - 0x3e0]
movzx ecx, word [eax]
movzx edx, word [ebp - 0x10]
sub ecx, edx
mov eax, dword [ebp - 0x3e0]
mov word [eax], cx
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
and edx, eax
mov byte [ebp - 0x331], dl
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [ecx]
add edx, dword [ebp - 0xc4]
mov dword [ebp - 0xdc], edx
lea eax, [ebp - 0x44]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x370], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ebp - 0x50]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xa8]
add ecx, 0xe1
mov dword [ebp - 0xa8], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 0x58], eax
mov edx, dword [ebp - 0x3c8]
sub edx, dword [ebp - 0x60]
mov dword [ebp - 0x3b8], edx
mov eax, dword [ebp - 0x3dc]
mov ecx, dword [eax]
add ecx, dword [ebp - 0x3a8]
mov dword [ebp - 0x380], ecx
mov edx, dword [ebp - 0x3cc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xdc]
shl eax, cl
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
mov eax, dword [ebp - 0x14]
movsx ecx, word [eax]
sar edx, cl
mov ecx, dword [ebp - 0x37c]
mov word [ecx], dx
movsx edx, byte [ebp - 0xa1]
movsx eax, byte [ebp - 0x371]
xor edx, eax
mov byte [ebp - 0x211], dl
movzx ecx, word [ebp - 0x378]
mov edx, dword [ebp - 0x3e0]
movzx eax, word [edx]
or ecx, eax
mov word [ebp - 0x364], cx
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
and edx, eax
mov byte [ebp - 0x331], dl
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ecx]
add edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0xd4]
mov dword [eax], edx
mov ecx, dword [ebp - 0x380]
add ecx, dword [ebp - 0xc0]
mov dword [ebp - 0x3a8], ecx
movzx edx, byte [ebp - 0x331]
movzx eax, byte [ebp - 0x3d6]
add edx, eax
mov byte [ebp - 0x3c1], dl
mov ecx, dword [ebp - 0x3e0]
movzx edx, word [ecx]
movzx eax, word [ebp - 0xa0]
sub edx, eax
mov ecx, dword [ebp - 0x3e0]
mov word [ecx], dx
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x3b8]
mov eax, dword [ebp - 0x18]
mov dword [eax], edx
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x380]
and edx, dword [ecx]
mov dword [section..data], edx
jmp 0x4041a8
mov dword [ebp - 0x208], 0x411c68
movzx eax, byte [ebp - 0x3c1]
mov ecx, dword [ebp - 0x6c]
movzx edx, byte [ecx]
sub eax, edx
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx ecx, byte [ebp - 0x212]
add edx, ecx
cmp eax, edx
jge 0x404506
mov edx, dword [ebp - 0x3a8]
sub edx, dword [ebp - 0xb8]
mov dword [ebp - 0xc0], edx
call section..text
mov dword [ebp - 0x3d0], 0x40b130
mov eax, dword [ebp - 0x54]
xor eax, dword [ebp - 0x3c8]
mov dword [ebp - 0x60], eax
lea ecx, [ebp - 0x364]
mov dword [ebp - 0xc8], ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov dword [ebp - 0x370], eax
mov edx, dword [ebp - 0xd0]
mov al, byte [edx]
mov byte [ebp - 0xe5], al
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0xdc]
mov ecx, dword [ecx]
shl edx, cl
mov dword [ebp - 0x3a8], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
movzx edx, byte [ebp - 0x3c1]
sub ecx, edx
mov eax, dword [ebp - 0x6c]
mov byte [eax], cl
movzx ecx, word [ebp - 0x364]
mov edx, dword [ebp - 0x3e0]
movzx eax, word [edx]
sub ecx, eax
mov word [ebp - 0x68], cx
mov ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0x18]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3dc]
mov edx, dword [ebp - 0xdc]
or edx, dword [ecx]
mov dword [ebp - 0x3a8], edx
mov eax, dword [ebp - 0x3dc]
mov ecx, dword [eax]
call fcn.00401b30
lea ecx, [ebp - 0x33c]
push ecx
mov edx, dword [ebp - 0xe0]
push edx
mov eax, dword [ebp - 0x98]
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0x204], eax
movzx ecx, byte [ebp - 0x331]
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
add ecx, eax
mov byte [ebp - 0x3c1], cl
mov ecx, dword [ebp - 0x37c]
movsx edx, word [ecx]
mov dword [ebp - 0x418], edx
cmp dword [ebp - 0x418], 0x79d
je 0x40460c
jmp 0x40461a
mov eax, dword [ebp - 0xd4]
mov ecx, dword [ebp - 0x20]
add ecx, dword [eax]
mov dword [ebp - 0x54], ecx
movzx edx, byte [ebp - 0x3d6]
movzx eax, byte [ebp - 0x3c1]
sub edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
movzx edx, word [ebp - 8]
push edx
movzx eax, byte [ebp - 0x3d6]
push eax
movzx ecx, word [ebp - 0x3b0]
push ecx
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
push eax
call fcn.004024e0
add esp, 0x10
lea ecx, [ebp - 0x3b0]
push ecx
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.USERENV.dll_GetProfilesDirectoryW]
mov dword [ebp - 0x204], eax
movzx eax, word [ebp - 0x364]
mov dword [ebp - 0x41c], eax
cmp dword [ebp - 0x41c], 0xc75
je 0x4046ac
cmp dword [ebp - 0x41c], 0xd6a
je 0x404696
jmp 0x4046de
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0xa1]
shl edx, cl
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
jmp 0x4046de
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3d6]
or edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x3c1]
and eax, ecx
mov byte [ebp - 0x331], al
movzx edx, word [ebp - 8]
push edx
mov eax, dword [ebp - 0xd4]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x4c]
mov cl, byte [ecx]
call fcn.004014b0
jmp 0x404786
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
shl eax, 0x8f
movzx ecx, byte [ebp - 0x3c1]
cmp eax, ecx
jge 0x40473f
movsx edx, byte [ebp - 0x3d5]
sar edx, 5
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
movzx ecx, byte [ebp - 0x3d5]
push ecx
movzx edx, byte [ebp - 0x3d5]
push edx
mov eax, dword [ebp - 0x4c]
movzx ecx, byte [eax]
push ecx
call fcn.00401840
add esp, 0xc
mov edx, dword [section..data]
add edx, 0x7360
mov dword [ebp - 0xc4], edx
movzx eax, byte [ebp - 0x3c1]
add eax, 0x46
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], al
mov edx, dword [ebp - 0xd0]
movzx eax, byte [edx]
and eax, 0x4e
mov byte [ebp - 0x3c1], al
movzx ecx, word [ebp - 0x364]
sub ecx, 0x313
mov word [ebp - 8], cx
call section..text
jmp 0x40482c
mov edx, dword [ebp - 0x4c]
mov al, byte [edx]
mov byte [ebp - 0x420], al
cmp byte [ebp - 0x420], 0x5b
je 0x4047a6
jmp 0x4047c7
lea ecx, [ebp - 0x3c1]
push ecx
mov edx, dword [ebp - 0x3e4]
push edx
mov eax, dword [ebp - 0xe4]
push eax
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryW]
mov dword [ebp - 0xb0], eax
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
movzx eax, byte [ebp - 0x3c1]
sub edx, eax
mov ecx, dword [ebp - 0xd0]
mov byte [ecx], dl
mov edx, dword [ebp - 0xc4]
add edx, 0x5685
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
sub ecx, 0xd1
movzx edx, byte [ebp - 0x3c1]
cmp ecx, edx
jge 0x404820
mov eax, dword [ebp - 0xc4]
and eax, 0x52d8
mov dword [ebp - 0xc4], eax
jmp 0x40482c
mov ecx, dword [ebp - 0x20]
sub ecx, dword [ebp - 0x368]
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xc4]
xor edx, 0x66b9
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
or eax, 0x101d
mov dword [ebp - 0xc4], eax
movsx ecx, byte [ebp - 0x3d5]
sar ecx, 1
mov edx, dword [ebp - 0x4c]
mov byte [edx], cl
mov eax, dword [ebp - 0xd0]
movzx ecx, byte [eax]
and ecx, 0x35
mov byte [ebp - 0x3c1], cl
movzx edx, word [ebp - 0x364]
add edx, 0x637
mov word [ebp - 0x364], dx
mov eax, dword [ebp - 0xc4]
xor eax, 0x6465
mov dword [ebp - 0xc4], eax
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
movsx ecx, byte [ebp - 0x3d5]
shl edx, cl
mov eax, dword [ebp - 0x4c]
mov byte [eax], dl
mov ecx, dword [ebp - 0xd0]
movzx edx, byte [ecx]
sar edx, 1
mov byte [ebp - 0x3c1], dl
movsx eax, byte [ebp - 0x3d5]
sub eax, 0x1a
mov ecx, dword [ebp - 0x4c]
movsx edx, byte [ecx]
cmp eax, edx
jg 0x4048e0
mov eax, dword [ebp - 0xc4]
sub eax, 0x371
mov dword [ebp - 0xc4], eax
jmp 0x4048ff
movzx ecx, byte [ebp - 0x3d5]
push ecx
movzx edx, byte [ebp - 0x3d5]
push edx
mov eax, dword [ebp - 0x4c]
movzx ecx, byte [eax]
push ecx
call fcn.00401840
add esp, 0xc
movzx edx, word [ebp - 0x364]
and edx, 0x6c4
mov word [ebp - 0x364], dx
mov eax, dword [ebp - 0xc4]
sub eax, 0x47d2
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x3a8]
mov esp, ebp
pop ebp
ret 0x10