Function at 0x42c7e0
Capabilities:
Authenticate hmac
Encode data using xor
Get common file path
Get startup folder
Inspect section memory permissions
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x520efa
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x46c
push ebx
push esi
push edi
mov edi, ecx
mov bl, dl
mov dword [ebp - 0x140], edi
mov dword [ebp - 0x14], 1
mov dword [ebp - 4], 0
push 0
call fcn.0047d990
mov byte [ebp - 4], 3
sub esp, 0x10
mov esi, esp
mov dword [ebp - 0x54], esp
sub esp, 8
mov dword [ebp - 0x14], 1
xorps xmm0, xmm0
mov dword [ebp - 0x98], 0x8a9f8d88
mov ecx, esp
mov byte [ebp - 0x94], 0x9c
movq qword [ebp - 0x93], xmm0
mov byte [ebp - 0x8b], 0
call fcn.0047ccd0
mov ecx, esi
call fcn.0047d960
add esp, 8
mov dword [ebp - 4], 4
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x98], al
inc ecx
cmp ecx, 5
jb 0x42c873
lea eax, [ebp - 0x98]
mov dword [0x5584f4], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x93], 0
call fcn.00402a50
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xc0]
call fcn.00402af0
push eax
mov ecx, edi
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.0047d5e0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 3
call fcn.004029b0
push 0x104
lea eax, [ebp - 0x474]
push 0
push eax
call fcn.004f9bf0
add esp, 0xc
lea eax, [ebp - 0x474]
push eax
movzx eax, bl
xor eax, 1
push 0
push 0
lea eax, [eax*2 + 0x1a]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [ebp + 0xc]
push eax
lea edx, [ebp - 0x474]
lea ecx, [ebp - 0x228]
call fcn.00483960
add esp, 4
lea ecx, [ebp - 0xa4]
mov dword [ebp - 4], 7
call fcn.0047e940
cmp byte [ebp + 8], 0
mov byte [ebp - 4], 8
jne 0x42cbde
sub esp, 0x18
lea eax, [ebp - 0x228]
mov ecx, esp
push eax
call fcn.0047faa0
push 0
mov dl, 1
lea ecx, [ebp - 0xcc]
call fcn.004259f0
add esp, 0x1c
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 9
call fcn.0047e760
lea ecx, [ebp - 0xcc]
test eax, eax
jne 0x42c9c5
call fcn.0047e850
lea ecx, [ebp - 0xa4]
call fcn.0047e850
lea ecx, [ebp - 0x228]
call fcn.004029b0
lea ecx, [ebp + 0xc]
call fcn.004029b0
lea ecx, [ebp + 0x24]
call fcn.004029b0
lea ecx, [ebp + 0x3c]
call fcn.004029b0
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
mov dword [ebp - 0xa8], esi
call fcn.0047e760
test eax, eax
je 0x42cbcd
xor ebx, ebx
mov dword [ebp - 0x58], ebx
nop
push esi
lea ecx, [ebp - 0xcc]
call fcn.0047e740
xorps xmm0, xmm0
mov byte [ebp - 0x62], 0xb7
mov edi, eax
movq qword [ebp - 0x61], xmm0
mov byte [ebp - 0x59], 0
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x62], al
inc ecx
cmp ecx, 1
jb 0x42ca00
lea eax, [ebp - 0x62]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x61], 0
call fcn.00402a50
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xa
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x27c]
call fcn.004838a0
sub esp, 0x14
mov byte [ebp - 4], 0xb
mov ecx, esp
mov edx, eax
push edi
call fcn.00483ac0
add esp, 4
lea ecx, [ebp - 0x98]
xor dl, dl
push 0
call fcn.004259f0
add esp, 0x1c
lea ecx, [ebp - 0x27c]
call fcn.004029b0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xe
call fcn.004029b0
lea ecx, [ebp - 0x98]
call fcn.0047e760
test eax, eax
je 0x42cb9e
mov ecx, dword [ebp - 0x94]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x98]
xor edi, edi
imul ecx
mov dword [ebp - 0x50], edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x42cb9e
push edi
lea ecx, [ebp - 0x98]
call fcn.0047e740
push 0
lea ecx, [ebp + 0x24]
push ecx
mov ecx, eax
call fcn.0047f5e0
cmp eax, 0xffffffff
je 0x42cb6f
mov ecx, dword [ebp - 0xa0]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xa4]
xor ebx, ebx
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x42cb50
xor edi, edi
nop word [eax + eax]
mov eax, dword [ebp - 0xcc]
lea ecx, [esi + edi]
add eax, dword [ebp - 0x58]
push eax
call fcn.00487330
test al, al
jne 0x42cb69
mov ecx, dword [ebp - 0xa0]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xa4]
inc ebx
sub ecx, esi
add edi, 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x42cb10
mov edi, dword [ebp - 0x50]
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0xa4]
mov ebx, dword [ebp - 0x58]
add eax, ebx
push eax
call fcn.00484f80
jmp 0x42cb6f
mov ebx, dword [ebp - 0x58]
mov edi, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x94]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x98]
inc edi
imul ecx
mov dword [ebp - 0x50], edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42cac3
mov esi, dword [ebp - 0xa8]
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 9
call fcn.0047e850
inc esi
lea ecx, [ebp - 0xcc]
add ebx, 0x18
mov dword [ebp - 0xa8], esi
mov dword [ebp - 0x58], ebx
call fcn.0047e760
cmp esi, eax
jb 0x42c9e0
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 8
call fcn.0047e850
jmp 0x42cc13
push 0x5363dc
lea ecx, [ebp - 0xc0]
call fcn.00402a50
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 0xf
push eax
lea ecx, [ebp - 0xa4]
call fcn.0047e7c0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 8
call fcn.004029b0
lea ecx, [ebp - 0xa4]
call fcn.0047e760
test eax, eax
jne 0x42cc57
push 0x5363dc
lea ecx, [ebp - 0xc0]
call fcn.00402a50
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 0x10
push eax
lea ecx, [ebp - 0xa4]
call fcn.0047e7c0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 8
call fcn.004029b0
xorps xmm0, xmm0
mov byte [ebp - 0x62], 0xb7
movq qword [ebp - 0x61], xmm0
xor ecx, ecx
mov byte [ebp - 0x59], 0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x62], al
inc ecx
cmp ecx, 1
jb 0x42cc70
lea eax, [ebp - 0x62]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x61], 0
call fcn.00402a50
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x11
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x27c]
call fcn.004838a0
sub esp, 0x14
mov byte [ebp - 4], 0x12
lea edx, [ebp + 0x3c]
mov ecx, esp
push edx
mov edx, eax
call fcn.00483ac0
add esp, 4
call fcn.0040c4c0
add esp, 0x18
lea ecx, [ebp - 0x27c]
mov bl, al
call fcn.004029b0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 8
call fcn.004029b0
test bl, bl
jne 0x42cdfe
movaps xmm0, xmmword [0x545540]
xor ecx, ecx
movups xmmword [ebp - 0x1c8], xmm0
mov byte [ebp - 0x1b0], bl
xorps xmm0, xmm0
movq qword [ebp - 0x1b8], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x1c8], al
inc ecx
cmp ecx, 0x10
jb 0x42cd20
lea eax, [ebp - 0x1c8]
mov dword [0x5585d8], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x1b8], 0
call fcn.00402a50
sub esp, 0x18
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0xc0]
mov esi, esp
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
mov ecx, esi
call fcn.004838a0
add esp, 4
call fcn.0040c4c0
add esp, 0x18
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xc0]
mov bl, al
call fcn.004029b0
test bl, bl
je 0x42cdfe
movaps xmm0, xmmword [0x543b20]
xor ecx, ecx
mov dword [ebp - 0x4c], 0x8f8e83a7
mov dword [ebp - 0x48], 0x9783a083
movups xmmword [ebp - 0x44], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0xf
jb 0x42cdb0
lea eax, [ebp - 0x4c]
mov dword [0x558508], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x14
call fcn.00402af0
push eax
lea ecx, [ebp + 0x3c]
call fcn.0047f8c0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 8
call fcn.004029b0
xorps xmm0, xmm0
mov byte [ebp - 0x62], 0xb7
movq qword [ebp - 0x61], xmm0
xor ecx, ecx
mov byte [ebp - 0x59], 0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x62], al
inc ecx
cmp ecx, 1
jb 0x42ce10
lea eax, [ebp - 0x62]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x61], 0
call fcn.00402a50
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x15
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x27c]
call fcn.004838a0
sub esp, 0x14
mov byte [ebp - 4], 0x16
lea edx, [ebp + 0x3c]
mov ecx, esp
push edx
mov edx, eax
call fcn.00483ac0
add esp, 4
lea ecx, [ebp - 0x354]
call fcn.0040be30
add esp, 0x18
lea ecx, [ebp - 0x27c]
call fcn.004029b0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x19
call fcn.004029b0
push 0x5363dc
lea ecx, [ebp - 0x33c]
call fcn.00402a50
lea ecx, [ebp - 0x354]
mov byte [ebp - 4], 0x1a
call fcn.004029a0
test eax, eax
je 0x42d1cd
sub esp, 0x28
mov ecx, esp
push 0
call fcn.0047cf30
push 0
push 1
lea edx, [ebp - 0x354]
lea ecx, [ebp - 0x164]
call fcn.00483da0
add esp, 0x30
mov byte [ebp - 4], 0x1b
xor ecx, ecx
movaps xmm0, xmmword [0x543420]
mov byte [ebp - 0xec], 0x84
movups xmmword [ebp - 0xeb], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0xec], al
inc ecx
cmp ecx, 8
jb 0x42cf00
lea eax, [ebp - 0xec]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0xe4], 0
call fcn.00402a50
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x12c]
mov ebx, 3
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
lea ecx, [ebp - 0x164]
call fcn.00483b70
mov ecx, eax
call fcn.0047d340
test al, al
jne 0x42d049
movaps xmm0, xmmword [0x543420]
xor ecx, ecx
mov byte [ebp - 0x104], 0x84
movups xmmword [ebp - 0x103], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x104], al
inc ecx
cmp ecx, 8
jb 0x42cf80
lea eax, [ebp - 0x104]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0xfc], 0
call fcn.00402a50
mov dword [ebp - 4], 0x1d
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x14], 7
call fcn.00402af0
push eax
lea ecx, [ebp - 0x164]
call fcn.00483b70
movaps xmm0, xmmword [0x543780]
mov esi, eax
mov dword [ebp - 0x2f], 0x9c8e828e
xor ecx, ecx
mov word [ebp - 0x2b], 0x8096
movups xmmword [ebp - 0x29], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xd
jb 0x42cff1
lea eax, [ebp - 0x2f]
mov dword [0x55852c], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x22], 0
call fcn.00402a50
mov dword [ebp - 4], 0x1e
lea ecx, [ebp - 0xc0]
mov ebx, 0xf
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
mov ecx, esi
call fcn.00483b70
mov ecx, eax
call fcn.0047d340
mov byte [ebp - 0x15], 1
test al, al
je 0x42d04d
mov byte [ebp - 0x15], 0
test bl, 8
je 0x42d063
and ebx, 0xfffffff7
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test bl, 4
je 0x42d079
and ebx, 0xfffffffb
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov dword [ebp - 4], 0x1b
test bl, 2
je 0x42d096
and ebx, 0xfffffffd
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
cmp byte [ebp - 0x15], 0
je 0x42d1bc
movaps xmm0, xmmword [0x543420]
xor ecx, ecx
mov byte [ebp - 0xec], 0x84
movups xmmword [ebp - 0xeb], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0xec], al
inc ecx
cmp ecx, 8
jb 0x42d0c0
lea eax, [ebp - 0xec]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0xe4], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x1f
call fcn.00402af0
push eax
lea ecx, [ebp - 0x164]
call fcn.00483b70
movaps xmm0, xmmword [0x543780]
mov esi, eax
mov dword [ebp - 0x2f], 0x9c8e828e
xor ecx, ecx
mov word [ebp - 0x2b], 0x8096
movups xmmword [ebp - 0x29], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2f], al
inc ecx
cmp ecx, 0xd
jb 0x42d127
lea eax, [ebp - 0x2f]
mov dword [0x55852c], ecx
push eax
lea ecx, [ebp - 0xc0]
mov byte [ebp - 0x22], 0
call fcn.00402a50
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x20
call fcn.00402af0
push eax
mov ecx, esi
call fcn.00483b70
lea ecx, [ebp - 0x1e0]
push ecx
mov ecx, eax
call fcn.00483cb0
mov edx, eax
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x27c]
call fcn.00402890
push eax
lea ecx, [ebp - 0x33c]
call fcn.0047f920
lea ecx, [ebp - 0x27c]
call fcn.004029b0
lea ecx, [ebp - 0x1e0]
call fcn.004029b0
lea ecx, [ebp - 0xc0]
call fcn.004029b0
lea ecx, [ebp - 0x84]
call fcn.004029b0
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0x1a
call fcn.0047d5c0
jmp 0x42d1d2
mov ebx, 1
mov ecx, dword [ebp - 0xa0]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xa4]
xor edi, edi
imul ecx
mov dword [ebp - 0x144], edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x42eca0
nop dword [eax]
cmp byte [ebp + 8], 0
je 0x42d230
push dword [ebp + 8]
lea ecx, [ebp - 0x4c]
call fcn.00402b00
push 0
push 0x5363dc
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x22
call fcn.00402b20
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x23
or ebx, 0x10
jmp 0x42d2a2
xorps xmm0, xmm0
mov byte [ebp - 0x62], 0xb7
movq qword [ebp - 0x61], xmm0
xor ecx, ecx
mov byte [ebp - 0x59], 0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x62], al
inc ecx
cmp ecx, 1
jb 0x42d242
lea eax, [ebp - 0x62]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x61], 0
call fcn.00402a50
mov dword [ebp - 4], 0x24
lea ecx, [ebp - 0x34]
or ebx, 0x20
mov dword [ebp - 0x14], ebx
call fcn.00402af0
mov ecx, dword [ebp - 0xa4]
lea edx, [edi + edi*2]
push eax
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0x264]
call fcn.004838a0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 0x25
or ebx, 0x40
xorps xmm0, xmm0
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x190], 0xb7
xor ecx, ecx
movq qword [ebp - 0x18f], xmm0
mov byte [ebp - 0x187], 0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x190], al
inc ecx
cmp ecx, 1
jb 0x42d2c0
lea eax, [ebp - 0x190]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0x18f], 0
call fcn.00402a50
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0x26
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x1e0]
call fcn.004838a0
add esp, 4
push esi
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x27
call fcn.00487360
sub esp, 0x18
mov byte [ebp - 4], 0x28
lea eax, [ebp + 0x3c]
mov ecx, esp
lea edx, [ebp - 0x84]
push eax
call fcn.00483ac0
add esp, 4
call fcn.0040c4c0
add esp, 0x18
lea ecx, [ebp - 0x84]
test al, al
sete byte [ebp - 0x15]
call fcn.004029b0
lea ecx, [ebp - 0x1e0]
call fcn.004029b0
lea ecx, [ebp - 0x12c]
call fcn.004029b0
test bl, 0x40
je 0x42d38b
and ebx, 0xffffffbf
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test bl, 0x20
je 0x42d39e
and ebx, 0xffffffdf
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov dword [ebp - 4], 0x1a
test bl, 0x10
je 0x42d3b8
and ebx, 0xffffffef
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
cmp byte [ebp - 0x15], 0
je 0x42d66e
xor ecx, ecx
cmp byte [ebp + 8], cl
je 0x42d43b
movaps xmm0, xmmword [0x543b20]
mov dword [ebp - 0x4c], 0x8f8e83a7
mov dword [ebp - 0x48], 0x9783a083
movups xmmword [ebp - 0x44], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0xf
jb 0x42d3e2
lea eax, [ebp - 0x4c]
mov dword [0x558508], ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x34]
or ebx, 0x80
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
lea ecx, [ebp - 0x24c]
call fcn.00402a50
mov esi, eax
mov dword [ebp - 4], 0x2a
or ebx, 0x100
jmp 0x42d4d9
movaps xmm0, xmmword [0x545540]
movups xmmword [ebp - 0x1c8], xmm0
mov byte [ebp - 0x1b0], 0
xorps xmm0, xmm0
movq qword [ebp - 0x1b8], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x1c8], al
inc ecx
cmp ecx, 0x10
jb 0x42d460
lea eax, [ebp - 0x1c8]
mov dword [0x5585d8], ecx
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0x1b8], 0
call fcn.00402a50
mov dword [ebp - 4], 0x2b
lea ecx, [ebp - 0x12c]
or ebx, 0x200
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push edi
lea ecx, [ebp - 0xa4]
mov esi, eax
call fcn.0047e740
push esi
mov edx, eax
lea ecx, [ebp - 0x264]
call fcn.004838a0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 0x2c
or ebx, 0x400
xorps xmm0, xmm0
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x186], 0xb7
xor ecx, ecx
movq qword [ebp - 0x185], xmm0
mov byte [ebp - 0x17d], 0
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x186], al
inc ecx
cmp ecx, 1
jb 0x42d500
lea eax, [ebp - 0x186]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x185], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov dword [ebp - 4], 0x2d
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x1e0]
call fcn.004838a0
sub esp, 0x14
mov byte [ebp - 4], 0x2e
mov ecx, esp
mov edx, eax
push esi
call fcn.00483b20
add esp, 4
call fcn.0040c4c0
add esp, 0x18
mov byte [ebp - 0x15], al
lea ecx, [ebp - 0x1e0]
call fcn.004029b0
lea ecx, [ebp - 0x84]
call fcn.004029b0
test ebx, 0x400
je 0x42d5a5
and ebx, 0xfffffbff
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x200
je 0x42d5c1
and ebx, 0xfffffdff
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x100
je 0x42d5dd
and ebx, 0xfffffeff
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov dword [ebp - 4], 0x1a
test bl, bl
jns 0x42d5f9
and ebx, 0xffffff7f
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
cmp byte [ebp - 0x15], 0
je 0x42d66e
movaps xmm0, xmmword [0x543b20]
xor ecx, ecx
mov dword [ebp - 0x4c], 0x8f8e83a7
mov dword [ebp - 0x48], 0x9783a083
movups xmmword [ebp - 0x44], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0xf
jb 0x42d620
lea eax, [ebp - 0x4c]
mov dword [0x558508], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x2f
call fcn.00402af0
push eax
lea ecx, [ebp + 0x3c]
call fcn.0047f8c0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x1a
call fcn.004029b0
cmp byte [ebp + 8], 0
je 0x42d6a4
push dword [ebp + 8]
lea ecx, [ebp - 0x4c]
call fcn.00402b00
push 0
push 0x5363dc
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x30
call fcn.00402b20
lea esi, [ebp - 0x4c]
mov byte [ebp - 4], 0x31
or ebx, 0x800
jmp 0x42d72f
xorps xmm0, xmm0
mov byte [ebp - 0x17c], 0xb7
movq qword [ebp - 0x17b], xmm0
xor ecx, ecx
mov byte [ebp - 0x173], 0
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x17c], al
inc ecx
cmp ecx, 1
jb 0x42d6c0
lea eax, [ebp - 0x17c]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x17b], 0
call fcn.00402a50
mov dword [ebp - 4], 0x32
lea ecx, [ebp - 0x34]
or ebx, 0x1000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
mov ecx, dword [ebp - 0xa4]
lea edx, [edi + edi*2]
push eax
lea edx, [ecx + edx*8]
lea ecx, [ebp - 0x264]
call fcn.004838a0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 0x33
or ebx, 0x2000
xorps xmm0, xmm0
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0x172], 0xb7
xor ecx, ecx
movq qword [ebp - 0x171], xmm0
mov byte [ebp - 0x169], 0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x172], al
inc ecx
cmp ecx, 1
jb 0x42d750
lea eax, [ebp - 0x172]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0x171], 0
call fcn.00402a50
lea ecx, [ebp - 0x12c]
mov dword [ebp - 4], 0x34
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x1e0]
call fcn.004838a0
add esp, 4
push esi
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x35
call fcn.00487360
sub esp, 0x18
mov byte [ebp - 4], 0x36
lea eax, [ebp + 0x3c]
mov ecx, esp
lea edx, [ebp - 0x84]
push eax
call fcn.00483ac0
add esp, 4
lea ecx, [ebp - 0xc0]
call fcn.0040be30
add esp, 0x18
lea ecx, [ebp - 0x84]
call fcn.004029b0
lea ecx, [ebp - 0x1e0]
call fcn.004029b0
lea ecx, [ebp - 0x12c]
call fcn.004029b0
test ebx, 0x2000
je 0x42d821
and ebx, 0xffffdfff
lea ecx, [ebp - 0x264]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x1000
je 0x42d83a
and ebx, 0xffffefff
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x800
je 0x42d853
and ebx, 0xfffff7ff
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
push dword [ebp + 8]
lea ecx, [ebp - 0x294]
call fcn.00402b00
push 0
push 0x5363dc
lea ecx, [ebp - 0x294]
mov byte [ebp - 4], 0x3e
call fcn.00402b20
mov byte [ebp - 4], 0x3f
cmp dword [ebp - 0xb0], 0
je 0x42db87
cmp dword [ebp - 0x32c], 0
jne 0x42db87
sub esp, 0x28
mov ecx, esp
push 0
call fcn.0047cf30
push 0
push 1
lea edx, [ebp - 0xc0]
lea ecx, [ebp - 0xec]
call fcn.00483da0
add esp, 0x30
mov byte [ebp - 4], 0x40
xor ecx, ecx
movaps xmm0, xmmword [0x543420]
mov byte [ebp - 0x201], 0x84
movups xmmword [ebp - 0x200], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x201], al
inc ecx
cmp ecx, 8
jb 0x42d8d4
lea eax, [ebp - 0x201]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x24c]
mov byte [ebp - 0x1f9], 0
call fcn.00402a50
mov byte [ebp - 4], 0x41
lea ecx, [ebp - 0x24c]
or ebx, 0x4000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
lea ecx, [ebp - 0xec]
call fcn.00483b70
mov ecx, eax
call fcn.0047d340
test al, al
jne 0x42da0b
movaps xmm0, xmmword [0x543420]
xor ecx, ecx
mov byte [ebp - 0x2a], 0x84
movups xmmword [ebp - 0x29], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x42d948
lea eax, [ebp - 0x2a]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x12c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
mov dword [ebp - 4], 0x42
lea ecx, [ebp - 0x12c]
or ebx, 0x8000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
lea ecx, [ebp - 0xec]
call fcn.00483b70
movaps xmm0, xmmword [0x543780]
mov esi, eax
mov dword [ebp - 0x4a], 0x9c8e828e
xor ecx, ecx
mov word [ebp - 0x46], 0x8096
movups xmmword [ebp - 0x44], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4a], al
inc ecx
cmp ecx, 0xd
jb 0x42d9b2
lea eax, [ebp - 0x4a]
mov dword [0x55852c], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
mov dword [ebp - 4], 0x43
lea ecx, [ebp - 0x84]
or ebx, 0x10000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
mov ecx, esi
call fcn.00483b70
mov ecx, eax
call fcn.0047d340
mov byte [ebp - 0x15], 1
test al, al
je 0x42da0f
mov byte [ebp - 0x15], 0
test ebx, 0x10000
je 0x42da2b
and ebx, 0xfffeffff
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x8000
je 0x42da47
and ebx, 0xffff7fff
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov dword [ebp - 4], 0x40
test ebx, 0x4000
je 0x42da6a
and ebx, 0xffffbfff
lea ecx, [ebp - 0x24c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
cmp byte [ebp - 0x15], 0
je 0x42db78
movaps xmm0, xmmword [0x543420]
xor ecx, ecx
mov byte [ebp - 0x2a], 0x84
movups xmmword [ebp - 0x29], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x42da85
lea eax, [ebp - 0x2a]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x22], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x44
call fcn.00402af0
push eax
lea ecx, [ebp - 0xec]
call fcn.00483b70
movaps xmm0, xmmword [0x543780]
mov esi, eax
mov dword [ebp - 0x4a], 0x9c8e828e
xor ecx, ecx
mov word [ebp - 0x46], 0x8096
movups xmmword [ebp - 0x44], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4a], al
inc ecx
cmp ecx, 0xd
jb 0x42dae3
lea eax, [ebp - 0x4a]
mov dword [0x55852c], ecx
push eax
lea ecx, [ebp - 0x24c]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0x45
call fcn.00402af0
push eax
mov ecx, esi
call fcn.00483b70
lea ecx, [ebp - 0x264]
push ecx
mov ecx, eax
call fcn.00483cb0
mov edx, eax
mov byte [ebp - 4], 0x46
lea ecx, [ebp - 0x1e0]
call fcn.00402890
push eax
lea ecx, [ebp - 0x294]
call fcn.0047f920
lea ecx, [ebp - 0x1e0]
call fcn.004029b0
lea ecx, [ebp - 0x264]
call fcn.004029b0
lea ecx, [ebp - 0x24c]
call fcn.004029b0
lea ecx, [ebp - 0x84]
call fcn.004029b0
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 0x3f
call fcn.0047d5c0
mov eax, dword [ebp - 0x284]
test eax, eax
jne 0x42dbab
lea eax, [ebp - 0x33c]
push eax
lea ecx, [ebp - 0x294]
call fcn.0047f8f0
mov eax, dword [ebp - 0x284]
test eax, eax
setne byte [ebp - 0x85]
mov byte [ebp - 4], 0x47
lea ecx, [ebp - 0x15c]
push 0
mov byte [ebp - 0x164], 0
call fcn.00481590
mov byte [ebp - 4], 0x48
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x68], esp
sub esp, 8
mov eax, esp
mov dword [eax], 0
mov dword [eax + 4], 0
call fcn.0047d960
add esp, 8
mov byte [ebp - 4], 0x49
lea esi, [edi + edi*2]
mov eax, dword [ebp - 0xa4]
lea ecx, [ebp - 0x164]
shl esi, 3
add eax, esi
mov dword [ebp - 0xd0], esi
push eax
call fcn.0047d240
mov ecx, eax
mov byte [ebp - 4], 0x48
call fcn.0047d5e0
cmp byte [ebp + 8], 0
je 0x42dc5e
push dword [ebp + 8]
lea ecx, [ebp - 0x12c]
call fcn.00402b00
push 0
push 0x5363dc
lea ecx, [ebp - 0x12c]
mov byte [ebp - 4], 0x4a
call fcn.00402b20
lea esi, [ebp - 0x12c]
mov byte [ebp - 4], 0x4b
or ebx, 0x20000
jmp 0x42dcf2
xorps xmm0, xmm0
mov byte [ebp - 0x19a], 0xb7
movq qword [ebp - 0x199], xmm0
xor ecx, ecx
mov byte [ebp - 0x191], 0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x19a], al
inc ecx
cmp ecx, 1
jb 0x42dc80
lea eax, [ebp - 0x19a]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x1e0]
mov byte [ebp - 0x199], 0
call fcn.00402a50
mov dword [ebp - 4], 0x4c
lea ecx, [ebp - 0x1e0]
or ebx, 0x40000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
mov edx, dword [ebp - 0xa4]
lea ecx, [ebp - 0x1c8]
push eax
lea edx, [edx + esi]
call fcn.004838a0
add esp, 4
mov esi, eax
mov dword [ebp - 4], 0x4d
or ebx, 0x80000
xorps xmm0, xmm0
mov dword [ebp - 0x14], ebx
mov byte [ebp - 0xca], 0xb7
xor ecx, ecx
movq qword [ebp - 0xc9], xmm0
mov byte [ebp - 0xc1], 0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0xca], al
inc ecx
cmp ecx, 1
jb 0x42dd10
lea eax, [ebp - 0xca]
mov dword [0x5585d0], ecx
push eax
lea ecx, [ebp - 0x264]
mov byte [ebp - 0xc9], 0
call fcn.00402a50
lea ecx, [ebp - 0x264]
mov dword [ebp - 4], 0x4e
call fcn.00402af0
push eax
lea edx, [ebp - 0x228]
lea ecx, [ebp - 0x36c]
call fcn.004838a0
add esp, 4
push esi
push eax
push dword [ebp + 8]
lea ecx, [ebp - 0x24c]
mov byte [ebp - 4], 0x4f
call fcn.00487360
lea eax, [ebp + 0x24]
mov byte [ebp - 4], 0x50
push eax
lea edx, [ebp - 0x24c]
lea ecx, [ebp - 0x27c]
call fcn.00483ac0
add esp, 4
lea ecx, [ebp - 0x24c]
call fcn.004029b0
lea ecx, [ebp - 0x36c]
call fcn.004029b0
lea ecx, [ebp - 0x264]
call fcn.004029b0
test ebx, 0x80000
je 0x42ddd4
and ebx, 0xfff7ffff
lea ecx, [ebp - 0x1c8]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
test ebx, 0x40000
je 0x42ddf0
and ebx, 0xfffbffff
lea ecx, [ebp - 0x1e0]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov byte [ebp - 4], 0x57
test ebx, 0x20000
je 0x42de10
and ebx, 0xfffdffff
lea ecx, [ebp - 0x12c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
lea ecx, [ebp - 0x27c]
call fcn.00402af0
lea edx, [ebp - 0xa8]
mov ecx, eax
call fcn.00417ba0
test eax, eax
jne 0x42ebba
movaps xmm0, xmmword [0x545820]
xor ecx, ecx
movups xmmword [ebp - 0x322], xmm0
mov dword [ebp - 0x2a2], 0xa1f0d08
movaps xmm0, xmmword [0x5447a0]
movups xmmword [ebp - 0x312], xmm0
mov byte [ebp - 0x29e], 0x1c
movaps xmm0, xmmword [0x544e00]
movups xmmword [ebp - 0x302], xmm0
mov byte [ebp - 0x295], al
movaps xmm0, xmmword [0x5446d0]
movups xmmword [ebp - 0x2f2], xmm0
movaps xmm0, xmmword [0x544790]
movups xmmword [ebp - 0x2e2], xmm0
movaps xmm0, xmmword [0x544580]
movups xmmword [ebp - 0x2d2], xmm0
movaps xmm0, xmmword [0x5445c0]
movups xmmword [ebp - 0x2c2], xmm0
movaps xmm0, xmmword [0x5445d0]
movups xmmword [ebp - 0x2b2], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x29d], xmm0
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x322], al
inc ecx
cmp ecx, 0x85
jb 0x42dec4
lea eax, [ebp - 0x322]
mov dword [0x5585c4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x29d], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
call fcn.00402af0
lea ecx, [ebp - 0x84]
mov esi, eax
call fcn.004029b0
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0x50]
push 0
push eax
push 0
push 1
push 0xffffffffffffffff
mov edx, esi
call fcn.004dd320
add esp, 0x14
test eax, eax
jne 0x42e6d0
mov ecx, dword [ebp - 0x50]
call fcn.004b9b80
cmp eax, 0x64
jne 0x42e6c8
mov byte [ebp - 4], 0x58
lea ecx, [ebp - 0x1a4]
push 0
mov byte [ebp - 0x1ac], 0
call fcn.00481590
mov byte [ebp - 4], 0x59
xor edx, edx
mov edi, dword [ebp - 0x50]
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x5438a0]
lea eax, [ebp - 0x1e4]
sub esp, 0x10
mov dword [ebp - 0x1e4], esi
mov ecx, esp
mov dword [ebp - 0x68], esp
mov dword [ebp - 0x2e], 0x8b808d85
mov byte [ebp - 0x2a], 0xb0
push eax
movups xmmword [ebp - 0x29], xmm0
call fcn.00484300
mov byte [ebp - 4], 0x5a
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2e], al
inc ecx
cmp ecx, 0xc
jb 0x42dfb4
lea eax, [ebp - 0x2e]
mov dword [0x5584d8], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x80000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x5b
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x5c
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x59
call fcn.004029b0
mov edi, dword [ebp - 0x50]
mov edx, 1
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x5453c0]
lea eax, [ebp - 0x1e8]
sub esp, 0x10
mov dword [ebp - 0x1e8], esi
movups xmmword [ebp - 0x32], xmm0
mov dword [ebp - 0x68], esp
mov ecx, esp
xorps xmm0, xmm0
mov byte [ebp - 0x1a], 0
push eax
movq qword [ebp - 0x22], xmm0
call fcn.00484300
mov byte [ebp - 4], 0x5d
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x32], al
inc ecx
cmp ecx, 0x10
jb 0x42e068
lea eax, [ebp - 0x32]
mov dword [0x5585d8], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x40000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x5e
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x5f
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x59
call fcn.004029b0
mov edi, dword [ebp - 0x50]
mov edx, 2
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x543680]
lea eax, [ebp - 0x1ec]
sub esp, 0x10
mov dword [ebp - 0x1ec], esi
mov ecx, esp
mov dword [ebp - 0x68], esp
mov dword [ebp - 0x4c], 0x879d948e
mov dword [ebp - 0x48], 0x9b85919d
push eax
movups xmmword [ebp - 0x44], xmm0
call fcn.00484300
mov byte [ebp - 4], 0x60
xor ecx, ecx
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x4c], al
inc ecx
cmp ecx, 0xf
jb 0x42e120
lea eax, [ebp - 0x4c]
mov dword [0x558508], ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x3d], 0
call fcn.00402a50
or ebx, 0x20000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x61
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x62
call fcn.0047d5e0
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0x59
call fcn.004029b0
mov esi, dword [ebp - 0x50]
mov edx, 3
mov ecx, esi
call fcn.004ba0c0
mov ecx, eax
call fcn.004b9af0
mov ecx, esi
mov dword [ebp - 0x68], eax
call fcn.004ba130
mov esi, dword [ebp - 0x50]
mov edx, 3
mov ecx, esi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b6f80
mov ecx, esi
mov edi, eax
call fcn.004ba130
push dword [ebp + 8]
lea ecx, [ebp - 0x208]
call fcn.00402b00
push 0
push 0x5363dc
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 0x63
call fcn.00402b20
push dword [ebp + 8]
lea ecx, [ebp - 0x84]
call fcn.00402b00
mov byte [ebp - 4], 0x65
lea ecx, [ebp - 0x84]
mov esi, dword [ebp - 0x68]
push edi
push esi
call fcn.00402b20
cmp byte [ebp - 0x85], 0
mov byte [ebp - 4], 0x66
je 0x42e312
xorps xmm0, xmm0
mov word [ebp - 0x150], 0xdd9d
mov byte [ebp - 0x14e], 0xdd
xor ecx, ecx
movq qword [ebp - 0x14d], xmm0
mov byte [ebp - 0x145], 0
nop dword [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x150], al
inc ecx
cmp ecx, 3
jb 0x42e240
lea eax, [ebp - 0x150]
mov dword [0x558540], ecx
push eax
lea ecx, [ebp - 0x34]
mov byte [ebp - 0x14d], 0
call fcn.00402a50
mov byte [ebp - 4], 0x67
lea ecx, [ebp - 0x34]
or ebx, 0x100000
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
push esi
call fcn.004f9260
add esp, 8
test eax, eax
jne 0x42e30c
xorps xmm0, xmm0
mov word [ebp - 0x96], 0xdd9d
mov byte [ebp - 0x94], 0xdc
xor ecx, ecx
movq qword [ebp - 0x93], xmm0
mov byte [ebp - 0x8b], al
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x96], al
inc ecx
cmp ecx, 3
jb 0x42e2c0
lea eax, [ebp - 0x96]
mov dword [0x558540], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x93], 0
call fcn.00402a50
or ebx, 0x200000
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.00402af0
push eax
push esi
call fcn.004f9260
add esp, 8
test eax, eax
je 0x42e312
mov byte [ebp - 0x15], 1
jmp 0x42e316
mov byte [ebp - 0x15], 0
test ebx, 0x200000
je 0x42e32f
and ebx, 0xffdfffff
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
mov dword [ebp - 4], 0x66
test ebx, 0x100000
je 0x42e34f
and ebx, 0xffefffff
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x14], ebx
call fcn.004029b0
cmp byte [ebp - 0x15], 0
je 0x42e394
sub esp, 0x18
lea eax, [ebp - 0x84]
mov ecx, esp
mov dword [ebp - 0x68], esp
push eax
call fcn.0047faa0
sub esp, 0x18
mov byte [ebp - 4], 0x68
lea eax, [ebp - 0x294]
mov ecx, esp
push eax
call fcn.0047faa0
xor dl, dl
mov byte [ebp - 4], 0x66
lea ecx, [ebp - 0x208]
call fcn.00425010
add esp, 0x30
jmp 0x42e3a9
push 0x800
lea edx, [ebp - 0x208]
mov ecx, esi
call fcn.00424ee0
add esp, 4
movaps xmm0, xmmword [0x5434f0]
lea eax, [ebp - 0x208]
sub esp, 0x10
mov dword [ebp - 0x2d], 0x8a9f8d88
mov ecx, esp
mov dword [ebp - 0x6c], esp
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484290
mov byte [ebp - 4], 0x69
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xb
jb 0x42e3d5
lea eax, [ebp - 0x2d]
mov dword [0x5584e0], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x4000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x6a
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x6b
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x66
call fcn.004029b0
mov edi, dword [ebp - 0x50]
mov edx, 4
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
sub esp, 0x10
mov dword [ebp - 0x234], esi
lea eax, [ebp - 0x234]
mov dword [ebp - 0x6c], esp
xorps xmm0, xmm0
mov dword [ebp - 0x113], 0x89849e84
mov ecx, esp
mov word [ebp - 0x10f], 0x9e86
push eax
movq qword [ebp - 0x10d], xmm0
mov byte [ebp - 0x105], 0
call fcn.00484300
mov byte [ebp - 4], 0x6c
xor ecx, ecx
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x113], al
inc ecx
cmp ecx, 6
jb 0x42e4a0
lea eax, [ebp - 0x113]
mov dword [0x5584f8], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x10d], 0
call fcn.00402a50
or ebx, 0x2000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x6d
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x6e
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x66
call fcn.004029b0
mov edi, dword [ebp - 0x50]
mov edx, 5
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x545c60]
lea eax, [ebp - 0x230]
sub esp, 0x10
mov dword [ebp - 0x230], esi
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x6c], esp
mov ecx, esp
xorps xmm0, xmm0
mov word [ebp - 0x24], 0x9892
push eax
movq qword [ebp - 0x22], xmm0
mov byte [ebp - 0x1a], 0
call fcn.00484300
mov byte [ebp - 4], 0x6f
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x34], al
inc ecx
cmp ecx, 0x12
jb 0x42e563
lea eax, [ebp - 0x34]
mov dword [0x55858c], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x800000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x70
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x71
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x66
call fcn.004029b0
mov edi, dword [ebp - 0x50]
mov edx, 6
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x543b40]
lea eax, [ebp - 0x22c]
sub esp, 0x10
mov dword [ebp - 0x22c], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov byte [ebp - 0x2a], 0x85
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484300
mov byte [ebp - 4], 0x72
xor ecx, ecx
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x42e610
lea eax, [ebp - 0x2a]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x4c]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x400000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x73
call fcn.00402af0
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x74
call fcn.0047d5e0
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x66
call fcn.004029b0
mov eax, dword [ebp - 0xa4]
lea ecx, [ebp - 0x164]
add eax, dword [ebp - 0xd0]
push eax
call fcn.0047d240
lea ecx, [ebp - 0x1ac]
push ecx
mov ecx, eax
call fcn.0047cf60
lea ecx, [ebp - 0x84]
call fcn.004029b0
lea ecx, [ebp - 0x208]
call fcn.004029b0
lea ecx, [ebp - 0x1ac]
mov byte [ebp - 4], 0x57
call fcn.0047d5c0
mov ecx, dword [ebp - 0x50]
call fcn.004b9b80
cmp eax, 0x64
je 0x42df44
mov ecx, dword [ebp - 0x50]
call fcn.004b9a40
movaps xmm0, xmmword [0x545820]
xor ecx, ecx
movups xmmword [ebp - 0x2f3], xmm0
mov dword [ebp - 0x2a3], 0x4c5c5f64
movaps xmm0, xmmword [0x544560]
movups xmmword [ebp - 0x2e3], xmm0
mov word [ebp - 0x29f], 0x335b
movaps xmm0, xmmword [0x544ee0]
movups xmmword [ebp - 0x2d3], xmm0
mov byte [ebp - 0x295], 0
movaps xmm0, xmmword [0x544e20]
movups xmmword [ebp - 0x2c3], xmm0
movaps xmm0, xmmword [0x544740]
movups xmmword [ebp - 0x2b3], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x29d], xmm0
nop dword [eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2f3], al
inc ecx
cmp ecx, 0x56
jb 0x42e740
lea eax, [ebp - 0x2f3]
mov dword [0x558514], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x29d], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
call fcn.00402af0
lea ecx, [ebp - 0x84]
mov esi, eax
call fcn.004029b0
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0x58]
push 0
push eax
push 0
push 1
push 0xffffffffffffffff
mov edx, esi
call fcn.004dd320
add esp, 0x14
test eax, eax
jne 0x42eba9
mov ecx, dword [ebp - 0x58]
call fcn.004b9b80
cmp eax, 0x64
jne 0x42eba1
nop dword [eax]
mov byte [ebp - 4], 0x75
lea ecx, [ebp - 0xfc]
push 0
mov byte [ebp - 0x104], 0
call fcn.00481590
mov byte [ebp - 4], 0x76
xor edx, edx
mov edi, dword [ebp - 0x58]
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x5438a0]
lea eax, [ebp - 0x210]
sub esp, 0x10
mov dword [ebp - 0x210], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov dword [ebp - 0x2e], 0x8b808d85
mov byte [ebp - 0x2a], 0xb0
push eax
movups xmmword [ebp - 0x29], xmm0
call fcn.00484300
mov byte [ebp - 4], 0x77
xor eax, eax
lea ecx, [eax - 0x15]
xor byte [ebp + eax - 0x2e], cl
inc eax
cmp eax, 0xc
jb 0x42e830
mov dword [0x5584d8], eax
lea ecx, [ebp - 0x84]
lea eax, [ebp - 0x2e]
mov byte [ebp - 0x22], 0
push eax
call fcn.00402a50
or ebx, 0x8000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x78
call fcn.00402af0
push eax
lea ecx, [ebp - 0x104]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x79
call fcn.0047d5e0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x76
call fcn.004029b0
mov edi, dword [ebp - 0x58]
mov edx, 1
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x543cd0]
lea eax, [ebp - 0x20c]
sub esp, 0x10
mov dword [ebp - 0x20c], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov word [ebp - 0x2b], 0x948e
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484300
mov byte [ebp - 4], 0x7a
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 9
jb 0x42e8e5
lea eax, [ebp - 0x2b]
mov dword [0x5585e0], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x10000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x7b
call fcn.00402af0
push eax
lea ecx, [ebp - 0x104]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x7c
call fcn.0047d5e0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x76
call fcn.004029b0
mov edi, dword [ebp - 0x58]
mov edx, 2
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x5430f0]
lea eax, [ebp - 0x1f0]
sub esp, 0x10
mov dword [ebp - 0x1f0], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov byte [ebp - 0x2a], 0x8e
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484300
mov byte [ebp - 4], 0x7d
xor ecx, ecx
nop word [eax + eax]
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x42e9a0
lea eax, [ebp - 0x2a]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x22], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x7e
call fcn.00402af0
push eax
lea ecx, [ebp - 0x104]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x7f
call fcn.0047d5e0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x76
call fcn.004029b0
mov edi, dword [ebp - 0x58]
mov edx, 3
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x543190]
lea eax, [ebp - 0x168]
sub esp, 0x10
mov dword [ebp - 0x168], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov word [ebp - 0x2b], 0x8d87
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484300
mov byte [ebp - 4], 0x80
xor ecx, ecx
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 9
jb 0x42ea50
lea eax, [ebp - 0x2b]
mov dword [0x5585e0], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x22], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x81
call fcn.00402af0
push eax
lea ecx, [ebp - 0x104]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x82
call fcn.0047d5e0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x76
call fcn.004029b0
mov edi, dword [ebp - 0x58]
mov edx, 4
mov ecx, edi
call fcn.004ba0c0
mov dl, 1
mov ecx, eax
call fcn.004b69f0
mov ecx, edi
mov esi, eax
call fcn.004ba130
movaps xmm0, xmmword [0x543b40]
lea eax, [ebp - 0x54]
sub esp, 0x10
mov dword [ebp - 0x54], esi
mov ecx, esp
mov dword [ebp - 0x6c], esp
mov byte [ebp - 0x2a], 0x85
movups xmmword [ebp - 0x29], xmm0
push eax
call fcn.00484300
mov byte [ebp - 4], 0x83
xor ecx, ecx
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 8
jb 0x42eaf6
lea eax, [ebp - 0x2a]
mov dword [0x5585d4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x22], 0
call fcn.00402a50
or ebx, 0x1000000
mov dword [ebp - 0x14], ebx
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x84
call fcn.00402af0
push eax
lea ecx, [ebp - 0x104]
call fcn.00483b70
mov ecx, eax
mov byte [ebp - 4], 0x85
call fcn.0047d5e0
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x76
call fcn.004029b0
mov eax, dword [ebp - 0xa4]
lea ecx, [ebp - 0x164]
add eax, dword [ebp - 0xd0]
push eax
call fcn.0047d240
lea ecx, [ebp - 0x104]
push ecx
mov ecx, eax
call fcn.0047cf60
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 0x57
call fcn.0047d5c0
mov ecx, dword [ebp - 0x58]
call fcn.004b9b80
cmp eax, 0x64
je 0x42e7c0
mov ecx, dword [ebp - 0x58]
call fcn.004b9a40
mov ecx, dword [ebp - 0xa8]
call fcn.00418110
mov edi, dword [ebp - 0x144]
xorps xmm0, xmm0
mov dword [ebp - 0x13a], 0x8a9f8d88
mov byte [ebp - 0x136], 0x9c
xor ecx, ecx
movq qword [ebp - 0x135], xmm0
mov byte [ebp - 0x12d], 0
nop
mov al, cl
sub al, 0x15
xor byte [ebp + ecx - 0x13a], al
inc ecx
cmp ecx, 5
jb 0x42ebe0
lea eax, [ebp - 0x13a]
mov dword [0x5584f4], ecx
push eax
lea ecx, [ebp - 0x84]
mov byte [ebp - 0x135], 0
call fcn.00402a50
lea ecx, [ebp - 0x84]
mov byte [ebp - 4], 0x86
call fcn.00402af0
mov ecx, dword [ebp - 0x140]
push eax
call fcn.00483b70
lea ecx, [ebp - 0x164]
push ecx
mov ecx, eax
call fcn.0047cf60
lea ecx, [ebp - 0x84]
call fcn.004029b0
lea ecx, [ebp - 0x27c]
call fcn.004029b0
lea ecx, [ebp - 0x164]
call fcn.0047d5c0
lea ecx, [ebp - 0x294]
call fcn.004029b0
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0x1a
call fcn.004029b0
mov ecx, dword [ebp - 0xa0]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xa4]
inc edi
imul ecx
mov dword [ebp - 0x144], edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x42d200
lea ecx, [ebp - 0x33c]
call fcn.004029b0
lea ecx, [ebp - 0x354]
call fcn.004029b0
lea ecx, [ebp - 0xa4]
call fcn.00481d80
lea ecx, [ebp - 0x228]
call fcn.004029b0
lea ecx, [ebp + 0xc]
call fcn.004029b0
lea ecx, [ebp + 0x24]
call fcn.004029b0
lea ecx, [ebp + 0x3c]
call fcn.004029b0
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret