Function at 0x408ab0
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c6ae
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x340
mov eax, dword [0x43d054]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0
mov dword [ebp - 4], 1
call fcn.00419163
add esp, 4
push eax
call fcn.00418707
mov edx, dword [ebx + 0x20]
lea ecx, [ebx + 0x20]
mov esi, dword [ebx + 0x30]
add esp, 4
cmp dword [ebx + 0x34], 0x10
setae byte [ebp - 0x15]
cmovae ecx, edx
cmp esi, 3
jne 0x408b48
movzx eax, byte [ecx]
cmp al, 0x63
jne 0x408b3f
movzx eax, byte [ecx + 1]
cmp al, 0x68
jne 0x408b3f
movzx eax, byte [ecx + 2]
cmp al, 0x6b
jne 0x408b3f
xor eax, eax
jmp 0x408b44
sbb eax, eax
or eax, 1
test eax, eax
je 0x408b91
cmp byte [ebp - 0x15], 0
lea ecx, [ebx + 0x20]
cmovne ecx, edx
cmp esi, 4
jne 0x408bb7
mov eax, dword [ecx]
mov edx, 0x439b44
cmp eax, dword [edx]
jne 0x408b68
add ecx, esi
xor eax, eax
jmp 0x408b8d
cmp al, byte [edx]
jne 0x408b88
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x408b88
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x408b88
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x408b88
xor eax, eax
jmp 0x408b8d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x408bb7
push ecx
lea ecx, [ebp - 0x2a0]
call fcn.0040a150
sub esp, 0xc
lea ecx, [ebp - 0x2a0]
push 0x439b4c
call fcn.0040bfc0
push 0
call fcn.0041859d
push 0
push 0
push 0
push 0x405860
push 0
push 0
call dword [0x42e090]
push 0xbb8
call dword [0x42e07c]
push 4
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x40]
push 0x439b54
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.00402ed0
lea edx, [ebp - 0x40]
mov byte [ebp - 4], 2
lea ecx, [ebx + 0x20]
call fcn.00406c70
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x408c46
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408c3c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
push 1
mov dword [ebp - 0x40], 0
lea ecx, [ebp - 0x40]
push 0x439b5c
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
call fcn.00402ed0
lea edx, [ebp - 0x40]
mov byte [ebp - 4], 3
lea ecx, [ebx + 8]
call fcn.00406c70
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x408cb5
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408cab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
call fcn.00404f60
mov dword [ebp - 0x2bc], eax
call fcn.00405640
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x2c0], eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
mov byte [ebp - 0x70], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov byte [ebp - 4], 5
mov eax, dword fs:[0x2c]
mov dword [ebp - 0x1c], 0x2e564743
mov esi, dword [eax]
mov eax, dword [0x43f050]
cmp eax, dword [esi + 4]
jle 0x408d55
push 0x43f050
call fcn.0040f858
add esp, 4
cmp dword [0x43f050], 0xffffffff
jne 0x408d55
mov eax, dword [ebp - 0x1c]
push 0x42d030
mov dword [0x43ee34], eax
call fcn.0040fb6a
add esp, 4
push 0x43f050
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee37]
test al, al
je 0x408d7a
xor byte [0x43ee34], 0x2e
xor byte [0x43ee35], 0x2e
xor byte [0x43ee36], 0x2e
xor al, 0x2e
mov byte [0x43ee37], al
mov ecx, 0x43ee34
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408da0
sub ecx, edx
push ecx
push 0x43ee34
lea ecx, [ebp - 0x2d8]
call fcn.00402ed0
push ecx
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebx + 8]
call fcn.0040c3a0
mov edx, dword [ebp - 0x2c4]
mov edi, eax
cmp edx, 0x10
jb 0x408e06
mov ecx, dword [ebp - 0x2d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408dfc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
test edi, edi
jne 0x409207
cmp dword [ebx + 0x1c], 0x10
lea ecx, [ebx + 8]
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 0x18]
cmovae ecx, edi
push 6
push 0x439b60
push ecx
setae byte [ebp - 0x15]
call fcn.00403020
add esp, 0xc
cmp eax, 0xffffffff
jne 0x409045
cmp byte [ebp - 0x15], 0
lea ecx, [ebx + 8]
mov edx, dword [ebx + 0x18]
push 7
cmovne ecx, edi
push 0x439b68
push ecx
call fcn.00403020
add esp, 0xc
cmp eax, 0xffffffff
jne 0x409045
cmp byte [ebp - 0x15], 0
lea ecx, [ebx + 8]
mov edx, dword [ebx + 0x18]
push 7
cmovne ecx, edi
push 0x439b70
push ecx
call fcn.00403020
add esp, 0xc
cmp eax, 0xffffffff
jne 0x409045
cmp byte [ebp - 0x15], 0
lea ecx, [ebx + 8]
mov edx, dword [ebx + 0x18]
push 5
cmovne ecx, edi
push 0x439b78
push ecx
call fcn.00403020
add esp, 0xc
cmp eax, 0xffffffff
jne 0x409045
mov eax, dword [0x43eff8]
mov dword [ebp - 0x28], 0x5a564743
mov word [ebp - 0x24], 0x4159
mov byte [ebp - 0x15], 0x2e
cmp eax, dword [esi + 4]
jle 0x408f15
push 0x43eff8
call fcn.0040f858
add esp, 4
cmp dword [0x43eff8], 0xffffffff
jne 0x408f15
mov eax, dword [ebp - 0x28]
mov dword [0x43ee90], eax
mov ax, word [ebp - 0x24]
mov word [0x43ee94], ax
mov al, byte [ebp - 0x15]
push 0x42cfe0
mov byte [0x43ee96], al
call fcn.0040fb6a
add esp, 4
push 0x43eff8
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee96]
test al, al
je 0x408f4f
xor byte [0x43ee90], 0x2e
xor byte [0x43ee91], 0x2e
xor byte [0x43ee92], 0x2e
xor byte [0x43ee93], 0x2e
xor byte [0x43ee94], 0x2e
xor byte [0x43ee95], 0x2e
xor al, 0x2e
mov byte [0x43ee96], al
mov ecx, 0x43ee90
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408f75
sub ecx, edx
push ecx
push 0x43ee90
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
mov eax, dword [0x43f02c]
mov word [ebp - 0x18], 0x2e6c
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x48], xmm0
cmp eax, dword [esi + 4]
jle 0x408ff4
push 0x43f02c
call fcn.0040f858
add esp, 4
cmp dword [0x43f02c], 0xffffffff
jne 0x408ff4
mov ax, word [ebp - 0x18]
push 0x42cfd0
mov word [0x43ee30], ax
call fcn.0040fb6a
add esp, 4
push 0x43f02c
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee31]
test al, al
je 0x40900b
xor byte [0x43ee30], 0x2e
xor al, 0x2e
mov byte [0x43ee31], al
mov ecx, 0x43ee30
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409031
sub ecx, edx
push ecx
push 0x43ee30
jmp 0x4091df
mov eax, dword [0x43efa0]
mov dword [ebp - 0x28], 0x41564743
mov word [ebp - 0x24], 0x4b40
mov byte [ebp - 0x15], 0x2e
cmp eax, dword [esi + 4]
jle 0x4090ad
push 0x43efa0
call fcn.0040f858
add esp, 4
cmp dword [0x43efa0], 0xffffffff
jne 0x4090ad
mov eax, dword [ebp - 0x28]
mov dword [0x43ef60], eax
mov ax, word [ebp - 0x24]
mov word [0x43ef64], ax
mov al, byte [ebp - 0x15]
push 0x42d010
mov byte [0x43ef66], al
call fcn.0040fb6a
add esp, 4
push 0x43efa0
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ef66]
test al, al
je 0x4090e7
xor byte [0x43ef60], 0x2e
xor byte [0x43ef61], 0x2e
xor byte [0x43ef62], 0x2e
xor byte [0x43ef63], 0x2e
xor byte [0x43ef64], 0x2e
xor byte [0x43ef65], 0x2e
xor al, 0x2e
mov byte [0x43ef66], al
mov ecx, 0x43ef60
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409110
sub ecx, edx
push ecx
push 0x43ef60
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
mov eax, dword [0x43eef0]
mov word [ebp - 0x18], 0x2e6f
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x48], xmm0
cmp eax, dword [esi + 4]
jle 0x40918f
push 0x43eef0
call fcn.0040f858
add esp, 4
cmp dword [0x43eef0], 0xffffffff
jne 0x40918f
mov ax, word [ebp - 0x18]
push 0x42d000
mov word [0x43ee38], ax
call fcn.0040fb6a
add esp, 4
push 0x43eef0
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee39]
test al, al
je 0x4091a6
xor byte [0x43ee38], 0x2e
xor al, 0x2e
mov byte [0x43ee39], al
mov ecx, 0x43ee38
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4091d0
sub ecx, edx
push ecx
push 0x43ee38
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x60], xmm0
jmp 0x409719
mov eax, dword [0x43ee18]
mov word [ebp - 0x1c], 0x5b4b
mov byte [ebp - 0x15], 0x2e
cmp eax, dword [esi + 4]
jle 0x409260
push 0x43ee18
call fcn.0040f858
add esp, 4
cmp dword [0x43ee18], 0xffffffff
jne 0x409260
mov ax, word [ebp - 0x1c]
mov word [0x43eff4], ax
mov al, byte [ebp - 0x15]
push 0x42cfc0
mov byte [0x43eff6], al
call fcn.0040fb6a
add esp, 4
push 0x43ee18
call fcn.0040f80e
add esp, 4
mov al, byte [0x43eff6]
test al, al
je 0x40927e
xor byte [0x43eff4], 0x2e
xor byte [0x43eff5], 0x2e
xor al, 0x2e
mov byte [0x43eff6], al
mov ecx, 0x43eff4
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4092a4
sub ecx, edx
push ecx
push 0x43eff4
lea ecx, [ebp - 0x2d8]
call fcn.00402ed0
push ecx
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebx + 8]
call fcn.0040c3a0
mov edx, dword [ebp - 0x2c4]
mov edi, eax
cmp edx, 0x10
jb 0x40930a
mov ecx, dword [ebp - 0x2d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409300
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov eax, dword [esi + 4]
test edi, edi
jne 0x409484
mov word [ebp - 0x18], 0x2e6d
cmp dword [0x43ef58], eax
jle 0x409360
push 0x43ef58
call fcn.0040f858
add esp, 4
cmp dword [0x43ef58], 0xffffffff
jne 0x409360
mov ax, word [ebp - 0x18]
push 0x42cfb0
mov word [0x43ed8c], ax
call fcn.0040fb6a
add esp, 4
push 0x43ef58
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ed8d]
test al, al
je 0x409377
xor byte [0x43ed8c], 0x2e
xor al, 0x2e
mov byte [0x43ed8d], al
mov ecx, 0x43ed8c
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4093a0
sub ecx, edx
push ecx
push 0x43ed8c
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
mov eax, dword [0x43ef88]
mov word [ebp - 0x1c], 0x5b4b
movups xmmword [ebp - 0x70], xmm0
mov byte [ebp - 0x15], 0x2e
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x60], xmm0
cmp eax, dword [esi + 4]
jle 0x40942b
push 0x43ef88
call fcn.0040f858
add esp, 4
cmp dword [0x43ef88], 0xffffffff
jne 0x40942b
mov ax, word [ebp - 0x1c]
mov word [0x43eeec], ax
mov al, byte [ebp - 0x15]
push 0x42cfa0
mov byte [0x43eeee], al
call fcn.0040fb6a
add esp, 4
push 0x43ef88
call fcn.0040f80e
add esp, 4
mov al, byte [0x43eeee]
test al, al
je 0x409449
xor byte [0x43eeec], 0x2e
xor byte [0x43eeed], 0x2e
xor al, 0x2e
mov byte [0x43eeee], al
mov ecx, 0x43eeec
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409470
sub ecx, edx
push ecx
push 0x43eeec
jmp 0x4096f6
mov word [ebp - 0x1c], 0x5d5b
mov byte [ebp - 0x15], 0x2e
cmp dword [0x43ef98], eax
jle 0x4094d8
push 0x43ef98
call fcn.0040f858
add esp, 4
cmp dword [0x43ef98], 0xffffffff
jne 0x4094d8
mov ax, word [ebp - 0x1c]
mov word [0x43efd8], ax
mov al, byte [ebp - 0x15]
push 0x42cf90
mov byte [0x43efda], al
call fcn.0040fb6a
add esp, 4
push 0x43ef98
call fcn.0040f80e
add esp, 4
mov al, byte [0x43efda]
test al, al
je 0x4094f6
xor byte [0x43efd8], 0x2e
xor byte [0x43efd9], 0x2e
xor al, 0x2e
mov byte [0x43efda], al
mov ecx, 0x43efd8
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409520
sub ecx, edx
push ecx
push 0x43efd8
lea ecx, [ebp - 0x2d8]
call fcn.00402ed0
push ecx
lea eax, [ebp - 0x2d8]
push eax
lea ecx, [ebx + 8]
call fcn.0040c3a0
mov edx, dword [ebp - 0x2c4]
mov edi, eax
cmp edx, 0x10
jb 0x409586
mov ecx, dword [ebp - 0x2d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x40957c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
test edi, edi
jne 0x409719
mov eax, dword [0x43ef18]
mov word [ebp - 0x18], 0x2e6a
cmp eax, dword [esi + 4]
jle 0x4095db
push 0x43ef18
call fcn.0040f858
add esp, 4
cmp dword [0x43ef18], 0xffffffff
jne 0x4095db
mov ax, word [ebp - 0x18]
push 0x42cf80
mov word [0x43eee0], ax
call fcn.0040fb6a
add esp, 4
push 0x43ef18
call fcn.0040f80e
add esp, 4
mov al, byte [0x43eee1]
test al, al
je 0x4095f2
xor byte [0x43eee0], 0x2e
xor al, 0x2e
mov byte [0x43eee1], al
mov ecx, 0x43eee0
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409618
sub ecx, edx
push ecx
push 0x43eee0
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
mov eax, dword [0x43ed80]
mov word [ebp - 0x1c], 0x5d5b
movups xmmword [ebp - 0x70], xmm0
mov byte [ebp - 0x15], 0x2e
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x60], xmm0
cmp eax, dword [esi + 4]
jle 0x4096a3
push 0x43ed80
call fcn.0040f858
add esp, 4
cmp dword [0x43ed80], 0xffffffff
jne 0x4096a3
mov ax, word [ebp - 0x1c]
mov word [0x43ee60], ax
mov al, byte [ebp - 0x15]
push 0x42cf70
mov byte [0x43ee62], al
call fcn.0040fb6a
add esp, 4
push 0x43ed80
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee62]
test al, al
je 0x4096c1
xor byte [0x43ee60], 0x2e
xor byte [0x43ee61], 0x2e
xor al, 0x2e
mov byte [0x43ee62], al
mov ecx, 0x43ee60
mov dword [ebp - 0x2b8], 0
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4096e7
sub ecx, edx
push ecx
push 0x43ee60
lea ecx, [ebp - 0x2b8]
call fcn.00402ed0
movups xmm0, xmmword [ebp - 0x2b8]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [ebp - 0x2a8]
movq qword [ebp - 0x48], xmm0
cmp dword [ebp - 0x2bc], 0
je 0x409731
push 1
push 0x439b80
lea ecx, [ebp - 0x58]
call fcn.00402ed0
cmp dword [ebp - 0x2c0], 0
je 0x409749
push 1
push 0x439b84
lea ecx, [ebp - 0x58]
call fcn.00402ed0
push 0x148
lea eax, [ebp - 0x1f0]
push 0
push eax
call fcn.00411410
add esp, 0xc
mov dword [ebp - 0x1e4], 0x439b34
mov dword [ebp - 0x1ec], 0x7a120
push 0x7a120
call fcn.0040f71d
add esp, 4
mov dword [ebp - 0x1f0], eax
push dword [ebp - 0x1ec]
push 0
push eax
call fcn.00411410
add esp, 0xc
mov dword [ebp - 0x1cc], 0xfde9
mov dword [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0
mov dword [ebp - 0x1b0], 0
mov byte [ebp - 4], 6
mov eax, dword [0x43ee84]
mov dword [ebp - 0x28], 0x4c5b5d08
mov dword [ebp - 0x24], 0x135c5a5d
mov byte [ebp - 0x15], 0x2e
cmp eax, dword [esi + 4]
jle 0x409827
push 0x43ee84
call fcn.0040f858
add esp, 4
cmp dword [0x43ee84], 0xffffffff
jne 0x409827
movq xmm0, qword [ebp - 0x28]
mov al, byte [ebp - 0x15]
push 0x42cf20
movq qword [0x43ef0c], xmm0
mov byte [0x43ef14], al
call fcn.0040fb6a
add esp, 4
push 0x43ee84
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ef14]
test al, al
je 0x40986f
xor byte [0x43ef0c], 0x2e
xor byte [0x43ef0d], 0x2e
xor byte [0x43ef0e], 0x2e
xor byte [0x43ef0f], 0x2e
xor byte [0x43ef10], 0x2e
xor byte [0x43ef11], 0x2e
xor byte [0x43ef12], 0x2e
xor byte [0x43ef13], 0x2e
xor al, 0x2e
mov byte [0x43ef14], al
mov ecx, 0x43ef0c
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2c8], 0
mov dword [ebp - 0x2c4], 0xf
mov byte [ebp - 0x2d8], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4098a0
sub ecx, edx
push ecx
push 0x43ef0c
lea ecx, [ebp - 0x2d8]
call fcn.00402ed0
mov byte [ebp - 4], 7
mov eax, dword [0x43efa4]
mov dword [ebp - 0x28], 0x5c5a5d08
mov word [ebp - 0x24], 0x2e13
cmp eax, dword [esi + 4]
jle 0x40991a
push 0x43efa4
call fcn.0040f858
add esp, 4
cmp dword [0x43efa4], 0xffffffff
jne 0x40991a
mov eax, dword [ebp - 0x28]
mov dword [0x43ee3c], eax
mov ax, word [ebp - 0x24]
push 0x42cf40
mov word [0x43ee40], ax
call fcn.0040fb6a
add esp, 4
push 0x43efa4
call fcn.0040f80e
add esp, 4
mov al, byte [0x43ee41]
test al, al
je 0x40994d
xor byte [0x43ee3c], 0x2e
xor byte [0x43ee3d], 0x2e
xor byte [0x43ee3e], 0x2e
xor byte [0x43ee3f], 0x2e
xor byte [0x43ee40], 0x2e
xor al, 0x2e
mov byte [0x43ee41], al
mov ecx, 0x43ee3c
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409970
sub ecx, edx
push ecx
push 0x43ee3c
lea ecx, [ebp - 0x40]
call fcn.00402ed0
mov byte [ebp - 4], 8
mov eax, dword [0x43edac]
mov dword [ebp - 0x7c], 0x5e005d5b
mov dword [ebp - 0x78], 0x5d115e46
mov word [ebp - 0x74], 0x2e13
cmp eax, dword [esi + 4]
jle 0x409a01
push 0x43edac
call fcn.0040f858
add esp, 4
cmp dword [0x43edac], 0xffffffff
jne 0x409a01
movaps xmm0, xmmword [0x439da0]
mov ax, word [ebp - 0x74]
movups xmmword [0x43eea4], xmm0
push 0x42cf50
movq xmm0, qword [ebp - 0x7c]
movq qword [0x43eeb4], xmm0
mov word [0x43eebc], ax
call fcn.0040fb6a
add esp, 4
push 0x43edac
call fcn.0040f80e
add esp, 4
cmp byte [0x43eebd], 0
je 0x409a3d
movups xmm0, xmmword [0x43eea4]
mov eax, 0x10
movaps xmm1, xmmword [0x439d70]
pxor xmm1, xmm0
movups xmmword [0x43eea4], xmm1
nop dword [eax + eax]
xor byte [eax + 0x43eea4], 0x2e
inc eax
cmp eax, 0x1a
jb 0x409a30
mov ecx, 0x43eea4
mov dword [ebp - 0x308], 0
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 0x2f4], 0xf
mov byte [ebp - 0x308], 0
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409a70
sub ecx, edx
push ecx
push 0x43eea4
lea ecx, [ebp - 0x308]
call fcn.00402ed0
mov byte [ebp - 4], 9
mov eax, 0x43ed2c
cmp dword [0x43ed40], 0x10
push dword [0x43ed3c]
cmovae eax, dword [0x43ed2c]
push eax
push ecx
lea ecx, [ebp - 0x308]
call fcn.0040df70
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x2dc], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x2f0], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x2e0], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
lea eax, [ebx + 0x20]
mov byte [ebp - 4], 0xa
push eax
lea edx, [ebp - 0x2f0]
lea ecx, [ebp - 0x350]
call fcn.0040d2b0
add esp, 4
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xb
push ecx
push eax
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x2b8]
call fcn.0040dd90
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xc
push eax
lea edx, [ebp - 0x2b8]
lea ecx, [ebp - 0x338]
call fcn.0040d2b0
add esp, 4
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0xd
push ecx
push eax
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x320]
call fcn.0040dd90
lea eax, [ebx + 8]
mov byte [ebp - 4], 0xe
push eax
lea edx, [ebp - 0x320]
lea ecx, [ebp - 0xa4]
call fcn.0040d2b0
add esp, 4
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x30c]
cmp edx, 0x10
jb 0x409bc3
mov ecx, dword [ebp - 0x320]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409bb9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x310], 0
mov dword [ebp - 0x30c], 0xf
mov byte [ebp - 0x320], 0
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x324]
cmp edx, 0x10
jb 0x409c1c
mov ecx, dword [ebp - 0x338]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409c12
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x328], 0
mov dword [ebp - 0x324], 0xf
mov byte [ebp - 0x338], 0
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x2a4]
cmp edx, 0x10
jb 0x409c75
mov ecx, dword [ebp - 0x2b8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409c6b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x2a8], 0
mov dword [ebp - 0x2a4], 0xf
mov byte [ebp - 0x2b8], 0
mov byte [ebp - 4], 0x13
mov edx, dword [ebp - 0x33c]
cmp edx, 0x10
jb 0x409cce
mov ecx, dword [ebp - 0x350]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409cc4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x33c], 0xf
mov byte [ebp - 0x350], 0
mov byte [ebp - 4], 0x14
mov edx, dword [ebp - 0x2dc]
cmp edx, 0x10
jb 0x409d27
mov ecx, dword [ebp - 0x2f0]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409d1d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x2dc], 0xf
mov byte [ebp - 0x2f0], 0
mov byte [ebp - 4], 0x15
mov edx, dword [ebp - 0x2f4]
cmp edx, 0x10
jb 0x409d80
mov ecx, dword [ebp - 0x308]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409d76
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov dword [ebp - 0x2f8], 0
mov dword [ebp - 0x2f4], 0xf
mov byte [ebp - 0x308], 0
mov byte [ebp - 4], 0x16
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
jb 0x409dcf
mov ecx, dword [ebp - 0x40]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409dc5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov byte [ebp - 4], 0x17
mov edx, dword [ebp - 0x2c4]
cmp edx, 0x10
jb 0x409e0e
mov ecx, dword [ebp - 0x2d8]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409e04
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x409e04
call fcn.00413e37
push edx
push ecx
call fcn.0040f70f
add esp, 8
mov edi, dword [0x42e07c]
nop dword [eax]
nop dword [eax + eax]
cmp dword [ebp - 0x90], 0x10
lea esi, [ebp - 0xa4]
mov eax, dword [ebp - 0x1c4]
cmovae esi, dword [ebp - 0xa4]
mov dword [ebp - 0x1bc], 0
test eax, eax
je 0x409e5b
push eax
call fcn.0040f4dd
add esp, 4
mov dword [ebp - 0x1c4], 0
push esi
lea ecx, [ebp - 0x1f0]
call fcn.004028b0
test eax, eax
je 0x409f34
mov edx, dword [ebp - 0x1c8]
xor eax, eax
cmp dword [ebp - 0x1bc], eax
mov dword [ebp - 0x40], eax
cmove edx, eax
mov dword [ebp - 0x30], eax
mov ecx, edx
mov dword [ebp - 0x2c], 0xf
mov byte [ebp - 0x40], al
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409e95
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x40]
call fcn.00402ed0
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x40]
mov edx, dword [ebp - 0x2c]
cmp edx, 0x10
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x30]
setae byte [ebp - 0x15]
cmovae eax, ecx
cmp esi, 1
jne 0x409edf
movzx eax, byte [eax]
cmp al, 0x30
jne 0x409ed2
xor eax, eax
jmp 0x409ed7
sbb eax, eax
or eax, 1
test eax, eax
je 0x40a13f
cmp byte [ebp - 0x15], 0
lea eax, [ebp - 0x40]
cmovne eax, ecx
cmp esi, 1
jne 0x409f02
movzx eax, byte [eax]
cmp al, 0x31
jne 0x409ef9
xor eax, eax
jmp 0x409efe
sbb eax, eax
or eax, 1
test eax, eax
je 0x409f40
mov byte [ebp - 4], 0x17
cmp edx, 0x10
jb 0x409f34
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409f2a
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409dff
push edx
push ecx
call fcn.0040f70f
add esp, 8
push 0xbb8
call edi
jmp 0x409e20
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x17
call fcn.00402ce0
push ecx
push 0x439b8c
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x409f89
push ecx
push 0x439b78
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x409f89
push ecx
push 0x439b94
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
je 0x40a0e5
call fcn.00405b40
test al, al
je 0x40a04f
push ecx
push 0x439b78
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x409fd3
push ecx
push 0x439b94
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x409fd3
sub esp, 0x18
mov ecx, esp
push 0x43ed14
call fcn.0040c610
call fcn.00406cf0
add esp, 0x18
call fcn.00405b40
test al, al
je 0x409ff0
nop dword [eax]
push 0x7d0
call edi
call fcn.00405b40
test al, al
jne 0x409fe0
sub esp, 0x18
lea eax, [ebp - 0x70]
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x43ed44
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x1a
mov ecx, esp
push 0x43ed5c
call fcn.0040c610
cmp dword [ebp - 0x2c0], 0
mov byte [ebp - 4], 0x17
setne dl
cmp dword [ebp - 0x2bc], 0
setne cl
call fcn.00408110
add esp, 0x48
jmp 0x40a0e5
sub esp, 0x18
lea eax, [ebp - 0x70]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x1b
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x43ed44
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x1c
mov ecx, esp
push 0x43ed5c
call fcn.0040c610
cmp dword [ebp - 0x2c0], 0
mov byte [ebp - 4], 0x17
setne dl
cmp dword [ebp - 0x2bc], 0
setne cl
call fcn.00408110
add esp, 0x44
lea ecx, [ebx + 8]
push 0x439b78
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x40a0e5
push ecx
push 0x439b94
lea ecx, [ebx + 8]
call fcn.00402c90
cmp eax, 0xffffffff
jne 0x40a0e5
sub esp, 0x18
mov ecx, esp
push 0x43ed14
call fcn.0040c610
call fcn.00406cf0
add esp, 0x18
sub esp, 0x18
lea eax, [ebp - 0x70]
mov ecx, esp
mov dword [ebp - 0x24], esp
push eax
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x1d
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x43ed44
call fcn.0040c610
sub esp, 0x18
mov byte [ebp - 4], 0x1e
mov ecx, esp
push 0x43ed5c
call fcn.0040c610
cmp dword [ebp - 0x2c0], 0
mov byte [ebp - 4], 0x17
setne dl
cmp dword [ebp - 0x2bc], 0
setne cl
call fcn.00408110
add esp, 0x48
call fcn.00406280
int3