Function at 0x420f40
Capabilities:
Authenticate hmac
Encode data using xor
Get common file path

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 0x505656
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x3f8
push esi
mov esi, ecx
mov byte [ebp - 0x15], dl
mov dword [ebp - 0x158], esi
push edi
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 4
lea ecx, [esi + 8]
push 0
mov byte [esi], 0
call fcn.00467f80
sub esp, 8
mov byte [ebp - 4], 5
mov eax, esp
mov dword [ebp - 0x1c], 1
lea ecx, [ebp - 0x108]
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.004643c0
add esp, 8
mov dword [ebp - 4], 6
xor ecx, ecx
mov dword [ebp - 0x60], 0xf7faf3f7
mov dword [ebp - 0x5c], 0x100d3f1
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x60], al
inc ecx
cmp ecx, 6
jb 0x420fe0
lea eax, [ebp - 0x60]
mov byte [ebp - 0x59], 0
push eax
mov ecx, esi
call fcn.0046a630
mov byte [ebp - 4], 5
mov edi, eax
mov cl, byte [ebp - 0x108]
mov dl, byte [edi]
mov byte [edi], cl
mov ecx, dword [ebp - 0xfc]
mov eax, dword [ebp - 0x100]
mov byte [ebp - 0x108], dl
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov dword [edi + 0xc], ecx
lea ecx, [ebp - 0x108]
mov dword [edi + 8], eax
mov dword [ebp - 0x100], edx
mov dword [ebp - 0xfc], esi
call fcn.00464020
push 0x104
lea eax, [ebp - 0x408]
push 0
push eax
call fcn.004df810
add esp, 0xc
lea eax, [ebp - 0x408]
push eax
movzx eax, byte [ebp - 0x15]
xor eax, 1
push 0
push 0
lea eax, [eax*2 + 0x1a]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea ecx, [ebp - 0x408]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421083
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebx + 0x34]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebx + 0x38], 0x10
lea eax, [ebx + 0x24]
push edx
cmovae eax, dword [ebx + 0x24]
push eax
push ecx
lea eax, [ebp - 0x408]
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0xf4]
call fcn.0046dfc0
mov esi, 0x40000001
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 4], 7
xor edi, edi
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0x44], edi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 0xac], edi
cmp byte [ebx + 8], 0
mov byte [ebp - 4], 8
jne 0x421526
sub esp, 0x18
lea eax, [ebp - 0xf4]
mov ecx, esp
push eax
call fcn.00466580
push edi
mov dl, 1
lea ecx, [ebp - 0xd0]
call fcn.00420b30
add esp, 0x1c
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 9
call fcn.004651c0
test eax, eax
jne 0x421172
call fcn.00468770
lea ecx, [ebp - 0xb4]
call fcn.00468770
lea ecx, [ebp - 0xf4]
call fcn.00402670
lea ecx, [ebx + 0xc]
call fcn.00402670
lea ecx, [ebx + 0x24]
call fcn.00402670
lea ecx, [ebx + 0x3c]
call fcn.00402670
lea ecx, [ebx + 0x54]
call fcn.00402670
jmp 0x42373e
mov esi, dword [ebp - 0xd0]
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0xcc]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x421512
xor eax, eax
mov dword [ebp - 0x58], eax
add eax, esi
mov word [ebp - 0x23], 0x5c
lea ecx, [ebp - 0x23]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x21], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4211b6
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x23]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x90]
call fcn.0046dfc0
mov eax, dword [ebp - 0x14]
or eax, 0x10000000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov esi, esp
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x20], esi
push dword [ebp - 0x28]
call fcn.00466300
xorps xmm0, xmm0
lea ecx, [ebp - 0x40]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
xor dl, dl
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
push 0
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
or eax, 0x20000000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
call fcn.00420b30
add esp, 0x1c
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x4212b3
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4212a9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x40]
sub ecx, esi
imul ecx
mov dword [ebp - 0x80], 0
sar edx, 2
mov eax, edx
mov dword [ebp - 0x7c], 0xf
shr eax, 0x1f
mov byte [ebp - 0x90], 0
add eax, edx
je 0x421416
xor ecx, ecx
mov dword [ebp - 0x34], ecx
test eax, eax
je 0x421416
xor eax, eax
mov dword [ebp - 0x78], eax
nop dword [eax]
cmp dword [ebx + 0x50], 0x10
lea ecx, [esi + eax]
mov eax, dword [ecx + 0x10]
lea esi, [ebx + 0x3c]
cmovae esi, dword [ebx + 0x3c]
cmp dword [ecx + 0x14], 0x10
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0xf8], esi
jb 0x421325
mov ecx, dword [ecx]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebx + 0x4c]
cmp edx, eax
ja 0x4213ea
sub eax, edx
test edx, edx
je 0x421461
movsx edx, byte [esi]
inc eax
add eax, ecx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x28], eax
sub eax, ecx
push eax
push edx
push ecx
call fcn.004e1000
mov edi, eax
add esp, 0xc
test edi, edi
je 0x4213e7
nop dword [eax]
mov ecx, esi
mov edx, edi
mov esi, dword [ebx + 0x4c]
sub esi, 4
jb 0x421381
nop dword [eax]
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x421386
add edx, 4
add ecx, 4
sub esi, 4
jae 0x421370
cmp esi, 0xfffffffc
je 0x4213ba
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4213b3
cmp esi, 0xfffffffd
je 0x4213ba
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4213b3
cmp esi, 0xfffffffe
je 0x4213ba
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4213b3
cmp esi, 0xffffffff
je 0x4213ba
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x4213ba
sbb eax, eax
or eax, 1
jmp 0x4213bc
xor eax, eax
test eax, eax
je 0x421459
mov eax, dword [ebp - 0x28]
inc edi
sub eax, edi
push eax
push dword [ebp - 0x30]
push edi
call fcn.004e1000
mov esi, dword [ebp - 0xf8]
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x421360
mov edi, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x40]
sub ecx, esi
inc dword [ebp - 0x34]
add dword [ebp - 0x78], 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x78]
jb 0x421300
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 9
call fcn.00468770
mov ecx, dword [ebp - 0xcc]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xd0]
sub ecx, esi
inc dword [ebp - 0x74]
add dword [ebp - 0x58], 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x74], eax
jae 0x421512
mov eax, dword [ebp - 0x58]
jmp 0x4211a1
sub edi, dword [ebp - 0x70]
cmp edi, 0xffffffff
je 0x4213e7
mov ecx, dword [ebp - 0x44]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xb4]
xor edi, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x28], eax
je 0x4214cb
mov ecx, dword [ebp - 0x58]
add ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x30], ecx
mov edx, dword [ecx + 0x10]
cmp dword [ecx + 0x14], 0x10
mov eax, ecx
jb 0x42149d
mov eax, dword [ecx]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x4214a7
mov ecx, dword [esi]
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.004762c0
add esp, 8
test al, al
jne 0x4213e7
mov ecx, dword [ebp - 0x30]
inc edi
add esi, 0x18
mov edx, dword [ecx + 0x10]
cmp edi, dword [ebp - 0x28]
jb 0x421493
mov eax, dword [ebp - 0xd0]
add eax, dword [ebp - 0x58]
mov edi, dword [ebp - 0x44]
push eax
cmp edi, dword [ebp - 0xac]
je 0x4214f8
mov ecx, edi
call fcn.00466580
add edi, 0x18
mov dword [ebp - 0x44], edi
mov dword [ebp - 0xb0], edi
jmp 0x4213ea
push edi
lea ecx, [ebp - 0xb4]
call fcn.00473290
mov edi, dword [ebp - 0xb0]
mov dword [ebp - 0x44], edi
jmp 0x4213ea
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 8
call fcn.00468770
mov esi, dword [ebp - 0x14]
jmp 0x421561
push 0x5214b8
lea ecx, [ebp - 0x1a8]
call fcn.00402710
lea eax, [ebp - 0x1a8]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0xb4]
call fcn.00465220
lea ecx, [ebp - 0x1a8]
mov byte [ebp - 4], 8
call fcn.00402670
mov edi, dword [ebp - 0xb0]
mov ecx, edi
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xb4]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x421625
push 0x5214b8
lea ecx, [ebp - 0x90]
call fcn.00402710
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x90]
push eax
cmp edi, dword [ebp - 0xac]
je 0x4215d8
push dword [ebp - 0x20]
mov ecx, edi
call fcn.00402830
movups xmm0, xmmword [ebp - 0x90]
mov ecx, 0xf
mov byte [ebp - 0x90], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x80]
movq qword [edi + 0x10], xmm0
add edi, 0x18
mov dword [ebp - 0xb0], edi
jmp 0x4215ed
push edi
lea ecx, [ebp - 0xb4]
call fcn.00473170
mov edi, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0x7c]
mov byte [ebp - 4], 8
cmp ecx, 0x10
jb 0x421625
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42161b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
lea ecx, [ebp - 0x23]
mov word [ebp - 0x23], 0x5c
mov byte [ebp - 0x21], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421635
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423761
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x23]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x90]
call fcn.0046dfc0
or esi, 0x1000000
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
mov byte [ebp - 4], 0xf
lea edx, [ebx + 0x54]
mov eax, dword [ebp - 0x80]
sub esp, 0x18
cmp dword [ebx + 0x68], 0x10
mov esi, esp
mov ecx, dword [ebx + 0x64]
cmovae edx, dword [ebx + 0x54]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], ecx
push ecx
push edx
cmp ecx, eax
ja 0x4216f6
mov eax, dword [ebp - 0x34]
lea esi, [ebp - 0x90]
add eax, ecx
cmp dword [ebp - 0x7c], 0x10
mov dword [ebp - 0x80], eax
cmovae esi, dword [ebp - 0x90]
mov eax, dword [ebp - 0x34]
add eax, esi
push eax
call fcn.004df290
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov ecx, dword [ebp - 0x34]
add eax, esi
mov esi, dword [ebp - 0x30]
mov byte [eax + ecx], 0
lea eax, [ebp - 0x90]
jmp 0x421709
mov byte [ebp - 0x28], 0
push dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x90]
call fcn.0046c3b0
xorps xmm0, xmm0
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov esi, dword [ebp - 0x14]
or esi, 0x2000000
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
call fcn.0040bf40
add esp, 0x18
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x7c]
test al, al
sete al
mov byte [ebp - 0x15], al
cmp ecx, 0x10
jb 0x42179b
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42178e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423766
push ecx
push edx
call fcn.004dd831
mov al, byte [ebp - 0x15]
add esp, 8
test al, al
je 0x42184c
movaps xmm0, xmmword [0x526750]
lea ecx, [ebp - 0xa2]
movups xmmword [ebp - 0xa2], xmm0
mov word [ebp - 0x92], 0x100
call fcn.0040ee50
mov esi, eax
sub esp, 0x18
mov ecx, esi
mov dword [ebp - 0x28], esp
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4217d2
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x42376b
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
push esi
push edx
push eax
push ecx
push dword [ebp - 0x20]
mov ecx, dword [ebp - 0x28]
call fcn.0046dfc0
call fcn.0040bf40
add esp, 0x18
test al, al
je 0x421849
movaps xmm0, xmmword [0x525dc0]
lea ecx, [ebp - 0x135]
movups xmmword [ebp - 0x135], xmm0
mov byte [ebp - 0x125], 1
call fcn.0040ee80
push eax
lea ecx, [ebx + 0x54]
call fcn.004663a0
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x23]
mov word [ebp - 0x23], 0x5c
mov byte [ebp - 0x21], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421860
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423770
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x23]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x90]
call fcn.0046dfc0
or esi, 0x8000000
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
mov byte [ebp - 4], 0x10
lea edx, [ebx + 0x54]
mov eax, dword [ebp - 0x80]
sub esp, 0x18
cmp dword [ebx + 0x68], 0x10
mov esi, esp
mov ecx, dword [ebx + 0x64]
cmovae edx, dword [ebx + 0x54]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x7c]
sub eax, dword [ebp - 0x70]
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], ecx
push ecx
push edx
cmp ecx, eax
ja 0x42191a
mov esi, dword [ebp - 0x70]
cmp dword [ebp - 0x7c], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0x80], eax
lea eax, [ebp - 0x90]
cmovae eax, dword [ebp - 0x90]
add esi, eax
push esi
call fcn.004df290
mov eax, dword [ebp - 0x28]
add esp, 0xc
mov byte [esi + eax], 0
lea eax, [ebp - 0x90]
mov esi, dword [ebp - 0x30]
jmp 0x42192d
mov byte [ebp - 0x28], 0
push dword [ebp - 0x28]
push ecx
lea ecx, [ebp - 0x90]
call fcn.0046c3b0
xorps xmm0, xmm0
lea ecx, [ebp - 0x258]
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
or eax, 0x4000000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
call fcn.0040b920
add esp, 0x18
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x4219b9
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4219af
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x423775
push ecx
push edx
call fcn.004dd831
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x80], 0
movups xmmword [ebp - 0x90], xmm0
mov dword [ebp - 0x7c], 0xf
mov byte [ebp - 0x90], 0
mov byte [ebp - 4], 0x13
cmp dword [ebp - 0x248], 0
je 0x421b5c
sub esp, 0x28
lea edx, [ebp - 0x258]
mov eax, esp
lea ecx, [ebp - 0x190]
push 0
push 1
mov dword [eax + 0x24], 0
call fcn.0046a9c0
add esp, 0x30
mov byte [ebp - 4], 0x14
xor ecx, ecx
mov dword [ebp - 0x6a], 0xfdc2eff4
mov dword [ebp - 0x66], 0xd6d1d9ed
mov word [ebp - 0x62], 0x100
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x6a], al
inc ecx
cmp ecx, 8
jb 0x421a27
lea eax, [ebp - 0x6a]
mov byte [ebp - 0x61], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
cmp byte [eax], 0
je 0x421b4d
lea ecx, [ebp - 0x3e]
mov dword [ebp - 0x3e], 0xfdc2eff4
mov dword [ebp - 0x3a], 0xd6d1d9ed
mov word [ebp - 0x36], 0x100
call fcn.0040eeb0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
lea ecx, [ebp - 0x53]
mov dword [ebp - 0x53], 0xecfef2fe
mov esi, eax
mov dword [ebp - 0x4f], 0xc7d5d0e6
mov dword [ebp - 0x4b], 0xc3cefbc7
mov word [ebp - 0x47], 0xde
mov byte [ebp - 0x45], 1
call fcn.0040a750
push eax
mov ecx, esi
call fcn.0046a630
cmp byte [eax], 0
je 0x421b4d
lea ecx, [ebp - 0x3e]
mov dword [ebp - 0x3e], 0xfdc2eff4
mov dword [ebp - 0x3a], 0xd6d1d9ed
mov word [ebp - 0x36], 0x100
call fcn.0040eeb0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
lea ecx, [ebp - 0x53]
mov dword [ebp - 0x53], 0xecfef2fe
mov esi, eax
mov dword [ebp - 0x4f], 0xc7d5d0e6
mov dword [ebp - 0x4b], 0xc3cefbc7
mov word [ebp - 0x47], 0xde
mov byte [ebp - 0x45], 1
call fcn.0040a750
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x180]
push ecx
mov ecx, eax
call fcn.0046a770
mov edx, eax
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x1a8]
call fcn.00402550
push eax
lea ecx, [ebp - 0x90]
call fcn.00466400
lea ecx, [ebp - 0x1a8]
call fcn.00402670
lea ecx, [ebp - 0x180]
call fcn.00402670
lea ecx, [ebp - 0x190]
mov byte [ebp - 4], 0x13
call fcn.00464020
mov esi, dword [ebp - 0xb4]
mov eax, 0x2aaaaaab
sub edi, esi
xor ecx, ecx
imul edi
mov dword [ebp - 0x58], ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x20], eax
je 0x42356b
cmp byte [ebx + 8], 0
je 0x421bc0
xorps xmm0, xmm0
mov dword [ebp - 0x12c], 0
movups xmmword [ebp - 0x13c], xmm0
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
mov byte [ebp - 4], 0x16
lea esi, [ebp - 0x13c]
mov edi, dword [ebp - 0x14]
or edi, 2
jmp 0x421c2f
lea eax, [ecx + ecx*2]
mov word [ebp - 0x23], 0x5c
lea edx, [esi + eax*8]
mov byte [ebp - 0x21], 0
mov esi, dword [edx + 0x10]
lea ecx, [ebp - 0x23]
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421be0
mov eax, 0x7fffffff
sub ecx, edi
sub eax, esi
cmp eax, ecx
jb 0x423757
cmp dword [edx + 0x14], 0x10
jb 0x421c00
mov edx, dword [edx]
push ecx
lea eax, [ebp - 0x23]
push eax
push esi
push edx
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x180]
call fcn.0046dfc0
mov edi, dword [ebp - 0x14]
or edi, 0x40000
lea esi, [ebp - 0x180]
mov dword [ebp - 4], 0x17
or edi, 4
lea ecx, [ebp - 0xd3]
mov dword [ebp - 0x1c], edi
mov word [ebp - 0xd3], 0x5c
lea edx, [ecx + 1]
mov byte [ebp - 0xd1], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421c50
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0xd3]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x154]
call fcn.0046dfc0
or edi, 0x200
mov dword [ebp - 0x1c], edi
push esi
lea eax, [ebp - 0x154]
mov dword [ebp - 4], 0x18
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0xa8]
call fcn.0046ddd0
or edi, 0x400
mov dword [ebp - 0x1c], edi
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov esi, esp
lea eax, [ebx + 0x54]
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x2c], esi
push eax
call fcn.00466300
xorps xmm0, xmm0
or edi, 0x800
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
movups xmm0, xmmword [eax]
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edi
movups xmmword [esi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [esi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
call fcn.0040bf40
add esp, 0x18
mov byte [ebp - 4], 0x18
mov ecx, dword [ebp - 0x94]
test al, al
sete byte [ebp - 0x15]
cmp ecx, 0x10
jb 0x421d72
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x421d68
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x140]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
cmp ecx, 0x10
jb 0x421dcb
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x421dc1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 4], 0x16
mov eax, dword [ebp - 0x14]
test al, 4
je 0x421e1f
mov ecx, dword [ebp - 0x16c]
and eax, 0xfffffffb
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x421e1f
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x421e12
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 4], 0x13
test al, 2
je 0x421e6d
mov ecx, dword [ebp - 0x128]
and eax, 0xfffffffd
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x421e6d
mov edx, dword [ebp - 0x13c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x421e63
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp byte [ebp - 0x15], 0
je 0x42219a
xor ecx, ecx
cmp byte [ebx + 8], cl
je 0x421f14
movaps xmm0, xmmword [0x525dc0]
movups xmmword [ebp - 0x135], xmm0
mov byte [ebp - 0x125], 1
nop word [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x135], al
inc ecx
cmp ecx, 0xf
jb 0x421ea0
xorps xmm0, xmm0
mov byte [ebp - 0x125], 0
lea ecx, [ebp - 0x135]
mov dword [ebp - 0x144], 0
movups xmmword [ebp - 0x154], xmm0
mov dword [ebp - 0x140], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421ee0
sub ecx, edx
lea eax, [ebp - 0x135]
push ecx
push eax
lea ecx, [ebp - 0x154]
call fcn.00402870
mov byte [ebp - 4], 0x1a
lea esi, [ebp - 0x154]
mov edi, dword [ebp - 0x14]
or edi, 8
mov dword [ebp - 0x1c], edi
jmp 0x421fbd
movaps xmm0, xmmword [0x526750]
movups xmmword [ebp - 0xa2], xmm0
mov word [ebp - 0x92], 0x100
nop dword [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xa2], al
inc ecx
cmp ecx, 0x10
jb 0x421f30
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xb4]
mov byte [ebp - 0x91], 0
lea eax, [eax + eax*2]
mov esi, dword [ecx + eax*8 + 0x10]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0xa2]
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421f64
mov eax, 0x7fffffff
sub ecx, edi
sub eax, esi
cmp eax, ecx
jb 0x423757
cmp dword [edx + 0x14], 0x10
jb 0x421f84
mov edx, dword [edx]
push ecx
lea eax, [ebp - 0xa2]
push eax
push esi
push edx
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x1a8]
call fcn.0046dfc0
mov eax, dword [ebp - 0x14]
or eax, 0x800000
or eax, 0x10
mov dword [ebp - 4], 0x1b
lea esi, [ebp - 0x1a8]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov edi, eax
lea ecx, [ebp - 0xd9]
mov word [ebp - 0xd9], 0x5c
mov byte [ebp - 0xd7], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421fd6
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0xd9]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x180]
call fcn.0046dfc0
or edi, 0x100000
mov dword [ebp - 0x1c], edi
sub esp, 0x18
mov dword [ebp - 4], 0x1c
mov ecx, esp
lea eax, [ebp - 0x180]
mov dword [ebp - 0x2c], ecx
push esi
push eax
push dword [ebp - 0x20]
call fcn.0046ddd0
or edi, 0x200000
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edi
call fcn.0040bf40
mov byte [ebp - 4], 0x1b
add esp, 0x18
mov ecx, dword [ebp - 0x16c]
mov byte [ebp - 0x15], al
cmp ecx, 0x10
jb 0x42209e
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422094
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 4], 0x1a
mov eax, dword [ebp - 0x14]
test al, 0x10
je 0x4220f2
mov ecx, dword [ebp - 0x194]
and eax, 0xffffffef
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x4220f2
mov edx, dword [ebp - 0x1a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4220e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 4], 0x13
test al, 8
je 0x422140
mov ecx, dword [ebp - 0x140]
and eax, 0xfffffff7
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x422140
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422136
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp byte [ebp - 0x15], 0
je 0x42219a
movaps xmm0, xmmword [0x525dc0]
xor ecx, ecx
movups xmmword [ebp - 0x135], xmm0
mov byte [ebp - 0x125], 1
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x135], al
inc ecx
cmp ecx, 0xf
jb 0x422160
lea ecx, [ebp - 0x135]
mov byte [ebp - 0x125], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422181
sub ecx, edx
lea eax, [ebp - 0x135]
push ecx
push eax
lea ecx, [ebx + 0x54]
call fcn.00466160
cmp byte [ebx + 8], 0
je 0x4221dd
xorps xmm0, xmm0
mov dword [ebp - 0x144], 0
movups xmmword [ebp - 0x154], xmm0
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
mov byte [ebp - 4], 0x1d
lea esi, [ebp - 0x154]
mov edi, dword [ebp - 0x14]
or edi, 0x20
mov dword [ebp - 0x1c], edi
jmp 0x422269
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xb4]
mov word [ebp - 0xd6], 0x5c
mov byte [ebp - 0xd4], 0
lea eax, [eax + eax*2]
mov esi, dword [ecx + eax*8 + 0x10]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0xd6]
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422210
mov eax, 0x7fffffff
sub ecx, edi
sub eax, esi
cmp eax, ecx
jb 0x423757
cmp dword [edx + 0x14], 0x10
jb 0x422230
mov edx, dword [edx]
push ecx
lea eax, [ebp - 0xd6]
push eax
push esi
push edx
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x180]
call fcn.0046dfc0
mov eax, dword [ebp - 0x14]
or eax, 0x400000
or eax, 0x40
mov dword [ebp - 4], 0x1e
lea esi, [ebp - 0x180]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov edi, eax
lea ecx, [ebp - 0x73]
mov word [ebp - 0x73], 0x5c
mov byte [ebp - 0x71], 0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422280
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x73]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x1a8]
call fcn.0046dfc0
or edi, 0x20000
mov dword [ebp - 0x1c], edi
push esi
lea eax, [ebp - 0x1a8]
mov dword [ebp - 4], 0x1f
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0xa8]
call fcn.0046ddd0
or edi, 0x10000
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edi
sub esp, 0x18
mov byte [ebp - 4], 0x20
mov edi, esp
lea edx, [ebx + 0x54]
mov dword [ebp - 0x2c], edi
cmp dword [ebx + 0x68], 0x10
mov ecx, dword [ebx + 0x64]
cmovae edx, dword [ebx + 0x54]
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x98]
sub eax, esi
mov dword [ebp - 0x30], ecx
push ecx
push edx
cmp ecx, eax
ja 0x422362
cmp dword [ebp - 0x94], 0x10
lea eax, [esi + ecx]
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0xa8]
cmovae eax, dword [ebp - 0xa8]
add esi, eax
push esi
call fcn.004df290
mov eax, dword [ebp - 0x30]
add esp, 0xc
mov byte [esi + eax], 0
lea eax, [ebp - 0xa8]
jmp 0x42237b
mov byte [ebp - 0x210], 0
push dword [ebp - 0x210]
push ecx
lea ecx, [ebp - 0xa8]
call fcn.0046c3b0
xorps xmm0, xmm0
lea ecx, [ebp - 0x280]
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
or eax, 0x8000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
call fcn.0040b920
add esp, 0x18
mov byte [ebp - 4], 0x22
mov ecx, dword [ebp - 0x94]
cmp ecx, 0x10
jb 0x42240a
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422400
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
mov byte [ebp - 4], 0x23
mov ecx, dword [ebp - 0x194]
cmp ecx, 0x10
jb 0x422463
mov edx, dword [ebp - 0x1a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422459
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x14]
test al, 0x40
je 0x4224b4
mov ecx, dword [ebp - 0x16c]
and eax, 0xffffffbf
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x4224b4
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4224a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
mov eax, dword [ebp - 0x14]
add esp, 8
mov byte [ebp - 4], 0x25
test al, 0x20
je 0x4224ff
mov ecx, dword [ebp - 0x140]
and eax, 0xffffffdf
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x4224ff
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4224f5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x214], 0xf
xor esi, esi
movups xmmword [ebp - 0x228], xmm0
mov dword [ebp - 0x218], esi
mov byte [ebp - 0x228], 0
mov byte [ebp - 4], 0x26
cmp dword [ebp - 0x270], esi
je 0x422717
cmp dword [ebp - 0x80], esi
jne 0x422717
sub esp, 0x28
lea edx, [ebp - 0x280]
mov eax, esp
lea ecx, [ebp - 0x268]
push esi
push 1
mov dword [eax + 0x24], esi
call fcn.0046a9c0
add esp, 0x30
mov byte [ebp - 4], 0x27
xor ecx, ecx
mov dword [ebp - 0x124], 0xfdc2eff4
mov dword [ebp - 0x120], 0xd6d1d9ed
mov word [ebp - 0x11c], 0x100
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x124], al
inc ecx
cmp ecx, 8
jb 0x422580
lea eax, [ebp - 0x124]
mov byte [ebp - 0x11b], 0
push eax
lea ecx, [ebp - 0x268]
call fcn.0046a630
cmp byte [eax], 0
je 0x422704
mov dword [ebp - 0x11a], 0xfdc2eff4
xor ecx, ecx
mov dword [ebp - 0x116], 0xd6d1d9ed
mov word [ebp - 0x112], 0x100
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x11a], al
inc ecx
cmp ecx, 8
jb 0x4225d2
lea eax, [ebp - 0x11a]
mov byte [ebp - 0x111], 0
push eax
lea ecx, [ebp - 0x268]
call fcn.0046a630
mov edx, eax
mov dword [ebp - 0x53], 0xecfef2fe
mov dword [ebp - 0x4f], 0xc7d5d0e6
xor ecx, ecx
mov dword [ebp - 0x4b], 0xc3cefbc7
mov word [ebp - 0x47], 0xde
mov byte [ebp - 0x45], 1
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0xd
jb 0x422620
lea eax, [ebp - 0x53]
mov byte [ebp - 0x45], 0
push eax
mov ecx, edx
call fcn.0046a630
cmp byte [eax], 0
je 0x422704
lea ecx, [ebp - 0xce]
mov dword [ebp - 0xce], 0xfdc2eff4
mov dword [ebp - 0xca], 0xd6d1d9ed
mov word [ebp - 0xc6], 0x100
call fcn.0040eeb0
push eax
lea ecx, [ebp - 0x268]
call fcn.0046a630
lea ecx, [ebp - 0x107]
mov dword [ebp - 0x107], 0xecfef2fe
mov esi, eax
mov dword [ebp - 0x103], 0xc7d5d0e6
mov dword [ebp - 0xff], 0xc3cefbc7
mov word [ebp - 0xfb], 0xde
mov byte [ebp - 0xf9], 1
call fcn.0040a750
push eax
mov ecx, esi
call fcn.0046a630
lea ecx, [ebp - 0x180]
push ecx
mov ecx, eax
call fcn.0046a770
mov edx, eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x1a8]
call fcn.00402550
push eax
lea ecx, [ebp - 0x228]
call fcn.00466400
lea ecx, [ebp - 0x1a8]
call fcn.00402670
lea ecx, [ebp - 0x180]
call fcn.00402670
mov esi, dword [ebp - 0x218]
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 0x26
call fcn.00464020
test esi, esi
jne 0x42273f
cmp dword [ebp - 0x7c], 0x10
lea eax, [ebp - 0x90]
push dword [ebp - 0x80]
cmovae eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x228]
push eax
call fcn.00466160
mov esi, dword [ebp - 0x218]
test esi, esi
setne byte [ebp - 0x15]
cmp byte [ebx + 8], 0
je 0x422789
xorps xmm0, xmm0
mov dword [ebp - 0x144], 0
movups xmmword [ebp - 0x154], xmm0
mov dword [ebp - 0x140], 0xf
mov byte [ebp - 0x154], 0
mov byte [ebp - 4], 0x29
lea esi, [ebp - 0x154]
mov edi, dword [ebp - 0x14]
or edi, 0x80
mov dword [ebp - 0x1c], edi
jmp 0x422808
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xb4]
mov word [ebp - 0x77], 0x5c
mov byte [ebp - 0x75], 0
lea eax, [eax + eax*2]
mov esi, dword [ecx + eax*8 + 0x10]
lea edx, [ecx + eax*8]
lea ecx, [ebp - 0x77]
lea edi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4227b0
mov eax, 0x7fffffff
sub ecx, edi
sub eax, esi
cmp eax, ecx
jb 0x423757
cmp dword [edx + 0x14], 0x10
jb 0x4227d0
mov edx, dword [edx]
push ecx
lea eax, [ebp - 0x77]
push eax
push esi
push edx
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x180]
call fcn.0046dfc0
mov eax, dword [ebp - 0x14]
or eax, 0x80000
or eax, 0x100
mov dword [ebp - 4], 0x2a
lea esi, [ebp - 0x180]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov edi, eax
lea ecx, [ebp - 0x43]
mov word [ebp - 0x43], 0x5c
mov byte [ebp - 0x41], 0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422818
sub ecx, edx
mov eax, 0x7fffffff
mov edx, dword [ebp - 0xe4]
sub eax, edx
cmp eax, ecx
jb 0x423757
cmp dword [ebp - 0xe0], 0x10
lea eax, [ebp - 0xf4]
push ecx
cmovae eax, dword [ebp - 0xf4]
lea ecx, [ebp - 0x43]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x20]
lea ecx, [ebp - 0x1a8]
call fcn.0046dfc0
or edi, 0x4000
mov dword [ebp - 0x1c], edi
push esi
lea eax, [ebp - 0x1a8]
mov dword [ebp - 4], 0x2b
push eax
push dword [ebp - 0x20]
lea ecx, [ebp - 0xa8]
call fcn.0046ddd0
or edi, 0x2000
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], 0x2c
lea ecx, [ebx + 0x3c]
cmp dword [ebx + 0x50], 0x10
mov edx, dword [ebp - 0x98]
cmovae ecx, dword [ebx + 0x3c]
mov eax, dword [ebp - 0x94]
mov edi, dword [ebx + 0x4c]
sub eax, edx
mov dword [ebp - 0x30], edx
push edi
push ecx
cmp edi, eax
ja 0x4228f6
cmp dword [ebp - 0x94], 0x10
lea esi, [ebp - 0xa8]
lea eax, [edx + edi]
cmovae esi, dword [ebp - 0xa8]
mov dword [ebp - 0x98], eax
lea eax, [esi + edx]
push eax
call fcn.004df290
mov ecx, dword [ebp - 0x30]
lea eax, [edi + esi]
add esp, 0xc
mov byte [eax + ecx], 0
lea eax, [ebp - 0xa8]
jmp 0x42290f
mov byte [ebp - 0x20c], 0
lea ecx, [ebp - 0xa8]
push dword [ebp - 0x20c]
push edi
call fcn.0046c3b0
mov dword [ebp - 0x1b4], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x1c4], xmm0
mov dword [ebp - 0x1b0], 0
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x1c4], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x1b4], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov eax, dword [ebp - 0x14]
or eax, 0x1000
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x2e
mov ecx, dword [ebp - 0x94]
cmp ecx, 0x10
jb 0x4229a1
mov edx, dword [ebp - 0xa8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422997
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0xf
mov byte [ebp - 0xa8], 0
mov byte [ebp - 4], 0x2f
mov ecx, dword [ebp - 0x194]
cmp ecx, 0x10
jb 0x4229fa
mov edx, dword [ebp - 0x1a8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4229f0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x30
mov eax, dword [ebp - 0x14]
test eax, 0x100
je 0x422a50
mov ecx, dword [ebp - 0x16c]
and eax, 0xfffffeff
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x422a50
mov edx, dword [ebp - 0x180]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422a43
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
mov eax, dword [ebp - 0x14]
add esp, 8
mov byte [ebp - 4], 0x31
test al, al
jns 0x422a9d
mov ecx, dword [ebp - 0x140]
and eax, 0xffffff7f
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
cmp ecx, 0x10
jb 0x422a9d
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x422a93
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
cmp dword [ebp - 0x1b0], 0x10
lea ecx, [ebp - 0x1c4]
lea edx, [ebp - 0x28]
cmovae ecx, dword [ebp - 0x1c4]
call fcn.00414580
test eax, eax
jne 0x42347f
movaps xmm0, xmmword [0x527390]
xor ecx, ecx
movups xmmword [ebp - 0x2f9], xmm0
mov dword [ebp - 0x289], 0x332c2c22
movaps xmm0, xmmword [0x526db0]
movups xmmword [ebp - 0x2e9], xmm0
mov dword [ebp - 0x285], 0x38212f
movaps xmm0, xmmword [0x526460]
movups xmmword [ebp - 0x2d9], xmm0
mov byte [ebp - 0x281], 1
movaps xmm0, xmmword [0x526050]
movups xmmword [ebp - 0x2c9], xmm0
movaps xmm0, xmmword [0x526aa0]
movups xmmword [ebp - 0x2b9], xmm0
movaps xmm0, xmmword [0x526180]
movups xmmword [ebp - 0x2a9], xmm0
movaps xmm0, xmmword [0x525f00]
movups xmmword [ebp - 0x299], xmm0
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x2f9], al
inc ecx
cmp ecx, 0x77
jb 0x422b40
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x70]
push 0
push eax
push 0
push 1
push 0xffffffffffffffff
lea edx, [ebp - 0x2f9]
mov byte [ebp - 0x281], 0
call fcn.004c2f40
add esp, 0x14
test eax, eax
jne 0x423477
mov edi, dword [ebp - 0x70]
mov ecx, edi
call fcn.0049f880
cmp eax, 0x64
jne 0x4233ff
test edi, edi
je 0x422be5
cmp dword [edi + 0x2c], 0
je 0x422bc0
mov eax, 2
cmp ax, word [edi + 0x30]
jae 0x422bc0
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422bb8
push eax
call dword [0x534d48]
add esp, 4
mov ecx, dword [edi + 0x2c]
add ecx, 0x50
jmp 0x422bea
mov eax, dword [edi]
test eax, eax
je 0x422be5
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422bd7
push eax
call dword [0x534d48]
add esp, 4
push 0
push 0x19
push dword [edi]
call fcn.0048e230
add esp, 0xc
mov ecx, 0x51f4d8
mov dl, 1
call fcn.0049c750
mov dword [ebp - 0xf8], eax
test edi, edi
je 0x422c4e
mov esi, dword [edi]
mov ecx, dword [edi + 0x64]
test esi, esi
je 0x422c31
cmp byte [esi + 0x1e], 0
jne 0x422c14
mov eax, esi
cmp ecx, 0xc0a
jne 0x422c2c
push 0
push 7
push esi
call fcn.0048e230
mov byte [esi + 0x1e], 0
add esp, 0xc
mov eax, dword [edi]
mov ecx, 7
mov edx, dword [esi + 0x18]
jmp 0x422c38
mov edx, 0xff
mov eax, esi
and ecx, edx
mov dword [edi + 0x64], ecx
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422c4e
push eax
call dword [0x534d50]
add esp, 4
mov edx, 3
mov ecx, edi
call fcn.0049fdb0
mov edx, 3
mov dword [ebp - 0x2c], eax
mov ecx, edi
call fcn.0049fea0
mov dword [ebp - 0x30], eax
test edi, edi
je 0x422cbb
cmp dword [edi + 0x2c], 0
je 0x422c96
xor eax, eax
cmp ax, word [edi + 0x30]
jae 0x422c96
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422c91
push eax
call dword [0x534d48]
add esp, 4
mov ecx, dword [edi + 0x2c]
jmp 0x422cc0
mov eax, dword [edi]
test eax, eax
je 0x422cbb
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422cad
push eax
call dword [0x534d48]
add esp, 4
push 0
push 0x19
push dword [edi]
call fcn.0048e230
add esp, 0xc
mov ecx, 0x51f4d8
mov dl, 1
call fcn.0049c750
mov dword [ebp - 0x34], eax
test edi, edi
je 0x422d24
mov esi, dword [edi]
mov ecx, dword [edi + 0x64]
test esi, esi
je 0x422d04
cmp byte [esi + 0x1e], 0
jne 0x422ce7
mov eax, esi
cmp ecx, 0xc0a
jne 0x422cff
push 0
push 7
push esi
call fcn.0048e230
mov byte [esi + 0x1e], 0
add esp, 0xc
mov eax, dword [edi]
mov ecx, 7
mov edx, dword [esi + 0x18]
jmp 0x422d0b
mov edx, 0xff
mov eax, esi
and ecx, edx
mov dword [edi + 0x64], ecx
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422d21
push eax
call dword [0x534d50]
add esp, 4
mov eax, dword [ebp - 0x34]
mov ecx, eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422d30
sub ecx, edx
jne 0x422df8
test edi, edi
je 0x422d93
cmp dword [edi + 0x2c], ecx
je 0x422d6e
mov eax, 1
cmp ax, word [edi + 0x30]
jae 0x422d6e
mov eax, dword [edi]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422d66
push eax
call dword [0x534d48]
add esp, 4
mov ecx, dword [edi + 0x2c]
add ecx, 0x28
jmp 0x422d98
mov eax, dword [edi]
test eax, eax
je 0x422d93
mov eax, dword [eax + 0x44]
test eax, eax
je 0x422d85
push eax
call dword [0x534d48]
add esp, 4
push 0
push 0x19
push dword [edi]
call fcn.0048e230
add esp, 0xc
mov ecx, 0x51f4d8
mov dl, 1
call fcn.0049c750
mov dword [ebp - 0x34], eax
test edi, edi
je 0x422df8
mov esi, dword [edi]
mov eax, dword [edi + 0x64]
test esi, esi
je 0x422ddb
cmp byte [esi + 0x1e], 0
jne 0x422dbe
mov edx, esi
cmp eax, 0xc0a
jne 0x422dd6
push 0
push 7
push esi
call fcn.0048e230
mov byte [esi + 0x1e], 0
add esp, 0xc
mov edx, dword [edi]
mov eax, 7
mov ecx, dword [esi + 0x18]
jmp 0x422de2
mov ecx, 0xff
mov edx, esi
and ecx, eax
mov dword [edi + 0x64], ecx
mov eax, dword [edx + 0x44]
test eax, eax
je 0x422df8
push eax
call dword [0x534d50]
add esp, 4
xorps xmm0, xmm0
mov dword [ebp - 0x12c], 0
movups xmmword [ebp - 0x13c], xmm0
mov dword [ebp - 0x128], 0xf
mov byte [ebp - 0x13c], 0
push dword [ebp - 0x30]
mov byte [ebp - 4], 0x32
lea ecx, [ebp - 0x154]
mov esi, dword [ebp - 0x2c]
push esi
movups xmmword [ebp - 0x154], xmm0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x140], 0
call fcn.00402870
cmp byte [ebp - 0x15], 0
mov byte [ebp - 4], 0x33
je 0x422f1e
mov dword [ebp - 0xb9], 0xadaded
xor ecx, ecx
mov byte [ebp - 0xb5], 1
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xb9], al
inc ecx
cmp ecx, 3
jb 0x422e70
lea eax, [ebp - 0xb9]
mov byte [ebp - 0xb5], 0
push eax
push esi
call fcn.004dee80
add esp, 8
test eax, eax
jne 0x422edc
mov dword [ebp - 0xbe], 0xacaded
xor ecx, ecx
mov byte [ebp - 0xba], 1
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xbe], al
inc ecx
cmp ecx, 3
jb 0x422eb0
lea eax, [ebp - 0xbe]
mov byte [ebp - 0xba], 0
push eax
push esi
call fcn.004dee80
add esp, 8
test eax, eax
je 0x422f1e
sub esp, 0x18
lea eax, [ebp - 0x154]
mov ecx, esp
mov dword [ebp - 0x1ac], esp
push eax
call fcn.00466580
sub esp, 0x18
mov byte [ebp - 4], 0x34
lea eax, [ebp - 0x228]
mov ecx, esp
push eax
call fcn.00466580
xor dl, dl
mov byte [ebp - 4], 0x33
lea ecx, [ebp - 0x13c]
call fcn.004204a0
add esp, 0x30
jmp 0x422f2f
push ecx
lea edx, [ebp - 0x13c]
mov ecx, esi
call fcn.00420370
add esp, 4
mov eax, dword [ebp - 0xf8]
test eax, eax
je 0x422f4b
mov ecx, eax
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x422f40
sub ecx, edx
jne 0x422f55
cmp dword [ebp - 0x30], 4
jl 0x423373
mov byte [ebp - 4], 0x35
lea ecx, [ebp - 0x188]
push 0
mov byte [ebp - 0x190], 0
call fcn.00467f80
mov eax, dword [ebp - 0x58]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x36
mov ecx, dword [ebp - 0xb4]
push 0x18
lea eax, [eax + eax*2]
movq qword [ebp - 0x1d0], xmm0
mov byte [ebp - 0x1d8], 3
lea esi, [ecx + eax*8]
call fcn.004dd5b0
lea ecx, [ebp - 0x159]
mov dword [ebp - 0x2c], eax
add esp, 4
mov dword [ebp - 0x238], ecx
mov dword [ebp - 0x234], eax
push esi
mov ecx, eax
mov byte [ebp - 4], 0x37
call fcn.00466580
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x1d0], esi
mov dword [ebp - 0x1cc], eax
mov byte [ebp - 4], 0x38
xor ecx, ecx
mov dword [ebp - 0x69], 0xf8f2eeeb
mov dword [ebp - 0x65], 0xc4ccf6
mov byte [ebp - 0x61], 1
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x69], al
inc ecx
cmp ecx, 7
jb 0x422ff4
lea eax, [ebp - 0x69]
mov byte [ebp - 0x61], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
mov byte [ebp - 4], 0x36
mov cl, byte [eax]
mov byte [eax], 3
mov edx, dword [eax + 0xc]
mov byte [ebp - 0x1d8], cl
mov ecx, dword [eax + 8]
mov dword [eax + 8], esi
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x1d0], ecx
lea ecx, [ebp - 0x1d8]
mov dword [eax + 0xc], esi
mov dword [ebp - 0x1cc], edx
call fcn.00464020
xorps xmm0, xmm0
mov byte [ebp - 0x1e8], 3
push 0x18
movq qword [ebp - 0x1e0], xmm0
call fcn.004dd5b0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x15a]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x22c], esi
mov ecx, dword [ebp - 0x34]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x39
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4230a0
sub ecx, edx
push ecx
push dword [ebp - 0x34]
mov ecx, esi
call fcn.00402870
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x1e0], esi
mov byte [ebp - 4], 0x3a
xor ecx, ecx
mov dword [ebp - 0xc3], 0xf1eeee
mov byte [ebp - 0xbf], 1
nop dword [eax + eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0xc3], al
inc ecx
cmp ecx, 3
jb 0x4230e0
lea eax, [ebp - 0xc3]
mov byte [ebp - 0xbf], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
mov esi, eax
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x1dc]
mov edi, dword [ebp - 0x2c]
mov cl, byte [esi]
mov byte [esi], 3
mov edx, dword [esi + 0xc]
mov byte [ebp - 0x1e8], cl
mov ecx, dword [esi + 8]
mov dword [ebp - 0x1e0], ecx
lea ecx, [ebp - 0x1e8]
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
mov dword [ebp - 0x1dc], edx
call fcn.00464020
xorps xmm0, xmm0
mov byte [ebp - 0x1f8], 3
push 0x18
movq qword [ebp - 0x1f0], xmm0
call fcn.004dd5b0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x15b]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x240], eax
mov dword [ebp - 0x23c], esi
mov ecx, dword [ebp - 0xf8]
xorps xmm0, xmm0
mov byte [ebp - 4], 0x3b
movups xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4231a0
sub ecx, edx
push ecx
push dword [ebp - 0xf8]
mov ecx, esi
call fcn.00402870
mov dword [ebp - 0x23c], 0
mov dword [ebp - 0x1f0], esi
mov byte [ebp - 4], 0x3c
xor ecx, ecx
mov dword [ebp - 0x5f], 0xf7faf3f7
mov word [ebp - 0x5b], 0xf1
mov byte [ebp - 0x59], 1
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x5f], al
inc ecx
cmp ecx, 5
jb 0x4231e0
lea eax, [ebp - 0x5f]
mov byte [ebp - 0x59], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
mov esi, eax
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x1ec]
mov edi, dword [ebp - 0x2c]
mov cl, byte [esi]
mov byte [esi], 3
mov edx, dword [esi + 0xc]
mov byte [ebp - 0x1f8], cl
mov ecx, dword [esi + 8]
mov dword [ebp - 0x1f0], ecx
lea ecx, [ebp - 0x1f8]
mov dword [esi + 8], edi
mov dword [esi + 0xc], eax
mov dword [ebp - 0x1ec], edx
call fcn.00464020
xorps xmm0, xmm0
mov byte [ebp - 0x208], 3
push 0x18
movq qword [ebp - 0x200], xmm0
call fcn.004dd5b0
mov esi, eax
add esp, 4
lea eax, [ebp - 0x15c]
mov dword [ebp - 0x164], esi
mov dword [ebp - 0x168], eax
lea eax, [ebp - 0x13c]
mov byte [ebp - 4], 0x3d
push eax
mov ecx, esi
call fcn.00466580
mov dword [ebp - 0x164], 0
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x200], esi
mov dword [ebp - 0x1fc], eax
mov byte [ebp - 4], 0x3e
xor ecx, ecx
mov edi, dword [ebp - 0x70]
mov dword [ebp - 0x3e], 0xedeefdeb
mov dword [ebp - 0x3a], 0xc6d3cfe8
mov word [ebp - 0x36], 0x100
nop dword [eax]
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x3e], al
inc ecx
cmp ecx, 8
jb 0x4232c0
lea eax, [ebp - 0x3e]
mov byte [ebp - 0x35], 0
push eax
lea ecx, [ebp - 0x190]
call fcn.0046a630
mov byte [ebp - 4], 0x36
mov cl, byte [eax]
mov byte [eax], 3
mov edx, dword [eax + 0xc]
mov byte [ebp - 0x208], cl
mov ecx, dword [eax + 8]
mov dword [eax + 8], esi
mov esi, dword [ebp - 0x164]
mov dword [ebp - 0x200], ecx
lea ecx, [ebp - 0x208]
mov dword [eax + 0xc], esi
mov dword [ebp - 0x1fc], edx
call fcn.00464020
mov dword [ebp - 0x110], 0xf7faf3f7
xor ecx, ecx
mov dword [ebp - 0x10c], 0x100d3f1
nop
mov al, cl
sub al, 0x65
xor byte [ebp + ecx - 0x110], al
inc ecx
cmp ecx, 6
jb 0x423330
mov ecx, dword [ebp - 0x158]
lea eax, [ebp - 0x110]
push eax
mov byte [ebp - 0x109], 0
call fcn.0046a630
lea ecx, [ebp - 0x190]
push ecx
mov ecx, eax
call fcn.004639a0
lea ecx, [ebp - 0x190]
call fcn.00464020
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x140]
cmp ecx, 0x10
jb 0x4233b1
mov edx, dword [ebp - 0x154]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4233a7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x31
mov ecx, dword [ebp - 0x128]
cmp ecx, 0x10
jb 0x4233ef
mov edx, dword [ebp - 0x13c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4233e5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, edi
call fcn.0049f880
cmp eax, 0x64
je 0x422b90
test edi, edi
je 0x423477
mov esi, dword [edi]
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x423419
push eax
call dword [0x534d48]
add esp, 4
mov eax, dword [edi + 0x50]
mov dword [ebp - 0x30], 0
cmp eax, 0xbdf20da3
je 0x423431
cmp eax, 0x519c2973
jne 0x42343b
mov ecx, edi
call fcn.0049e680
mov dword [ebp - 0x30], eax
mov ecx, edi
call fcn.0049e890
test esi, esi
je 0x423466
cmp byte [esi + 0x1e], 0
jne 0x423455
cmp dword [ebp - 0x30], 0xc0a
jne 0x423466
push 0
push 7
push esi
call fcn.0048e230
add esp, 0xc
mov byte [esi + 0x1e], 0
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x423477
push eax
call dword [0x534d50]
add esp, 4
mov ecx, dword [ebp - 0x28]
call fcn.004149b0
mov byte [ebp - 4], 0x26
mov ecx, dword [ebp - 0x1b0]
cmp ecx, 0x10
jb 0x4234bd
mov edx, dword [ebp - 0x1c4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4234b3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x25
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x1b4], 0
mov dword [ebp - 0x1b0], 0xf
mov byte [ebp - 0x1c4], 0
cmp ecx, 0x10
jb 0x423516
mov edx, dword [ebp - 0x228]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42350c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x26c]
cmp ecx, 0x10
jb 0x423554
mov edx, dword [ebp - 0x280]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x42354a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42375c
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x58]
inc ecx
mov dword [ebp - 0x58], ecx
cmp ecx, dword [ebp - 0x20]
jae 0x42356b
mov esi, dword [ebp - 0xb4]
jmp 0x421b83
mov ecx, dword [ebp - 0x7c]
cmp ecx, 0x10
jb 0x4235a2
mov edx, dword [ebp - 0x90]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x423598
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebp - 0x244]
cmp ecx, 0x10
jb 0x4235dc
mov edx, dword [ebp - 0x258]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4235d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0xf
mov byte [ebp - 0x258], 0
call fcn.00468770
mov ecx, dword [ebp - 0xe0]
cmp ecx, 0x10
jb 0x42363c
mov edx, dword [ebp - 0xf4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x423632
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebx + 0x20]
cmp ecx, 0x10
jb 0x423670
mov edx, dword [ebx + 0xc]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x423666
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebx + 0x38]
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x20], 0xf
mov byte [ebx + 0xc], 0
cmp ecx, 0x10
jb 0x4236b6
mov edx, dword [ebx + 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4236ac
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebx + 0x50]
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x38], 0xf
mov byte [ebx + 0x24], 0
cmp ecx, 0x10
jb 0x4236fc
mov edx, dword [ebx + 0x3c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4236f2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov ecx, dword [ebx + 0x68]
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0xf
mov byte [ebx + 0x3c], 0
cmp ecx, 0x10
jb 0x42373e
mov edx, dword [ebx + 0x54]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x423734
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42377a
push ecx
push edx
call fcn.004dd831
add esp, 8
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00402050
call fcn.004e2ad0
call fcn.00402050
call fcn.004e2ad0
call fcn.00402050
call fcn.00402050
call fcn.004e2ad0
call fcn.004e2ad0
int3