Function at 0x45d610
Capabilities:
Authenticate hmac
Encode data using xor
Get number of processors
Inspect section memory permissions
Parse pe header

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 0x5322f7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x678
xor eax, eax
push esi
mov dword [ebp - 0x1c], eax
push edi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb8], eax
mov dword [ebp - 0x7c], eax
lea eax, [ebp - 0x1e0]
mov dword [ebp - 4], 7
push eax
lea ecx, [ebx + 8]
call fcn.0048c880
lea ecx, [ebx + 8]
mov edi, dword [eax]
lea eax, [ebp - 0x28]
push eax
call fcn.0048c860
lea ecx, [ebx + 8]
mov esi, dword [eax]
lea eax, [ebp - 0x34]
push eax
call fcn.0048c880
push edi
push esi
lea ecx, [ebp - 0xb4]
push dword [eax]
call fcn.00491650
add esp, 0xc
cmp byte [0x565080], 2
jne 0x461327
lea eax, [ebp - 0x238]
mov ecx, 0x565080
push eax
call fcn.0048a3a0
lea eax, [ebp - 0x4cc]
push eax
call fcn.0048a330
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x238]
call fcn.00489ed0
test al, al
je 0x461327
lea ecx, [ebp - 0x238]
call fcn.00489fe0
xorps xmm0, xmm0
mov dword [ebp - 0x52], 0xdceed4c3
mov esi, eax
mov word [ebp - 0x4e], 0xd9d2
mov byte [ebp - 0x4c], 0xd0
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x52], al
inc ecx
cmp ecx, 7
jb 0x45d718
lea eax, [ebp - 0x52]
mov dword [0x565560], ecx
push eax
lea ecx, [ebp - 0x250]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
mov edi, dword [ebp - 0x24]
or edi, 0x8000000
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 8
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00490ca0
lea ecx, [ebp - 0x564]
push ecx
mov ecx, eax
call fcn.00490de0
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 0xa
call fcn.00402ad0
xorps xmm0, xmm0
mov dword [ebp - 0x53], 0xdfeed4c3
mov dword [ebp - 0x4f], 0xc5dec6d2
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 8
jb 0x45d7a4
lea eax, [ebp - 0x53]
mov dword [0x565624], ecx
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x40000000
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xb
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00490ca0
lea ecx, [ebp - 0x448]
push ecx
mov ecx, eax
call fcn.00490de0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xd
call fcn.00402ad0
xorps xmm0, xmm0
mov dword [ebp - 0x51], 0xd5eed4c3
mov word [ebp - 0x4d], 0xdbd6
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45d823
lea eax, [ebp - 0x51]
mov dword [0x565548], ecx
push eax
lea ecx, [ebp - 0x250]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x80000000
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 0xe
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00490ca0
lea ecx, [ebp - 0x274]
push ecx
mov ecx, eax
call fcn.00490de0
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 0x10
call fcn.00402ad0
xorps xmm0, xmm0
mov dword [ebp - 0x51], 0xc7eed4c3
mov word [ebp - 0x4d], 0xd8c1
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
nop dword [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45d8b0
lea eax, [ebp - 0x51]
mov dword [0x565548], ecx
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x20000000
mov dword [ebp - 0x24], edi
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x11
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00490ca0
lea ecx, [ebp - 0x41c]
push ecx
mov ecx, eax
call fcn.00490de0
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x13
call fcn.00402ad0
lea eax, [ebp - 0x498]
push eax
lea ecx, [ebp - 0x274]
call fcn.0048c880
lea ecx, [ebp - 0x274]
mov edi, dword [eax]
lea eax, [ebp - 0x44c]
push eax
call fcn.0048c860
lea ecx, [ebp - 0x274]
mov esi, dword [eax]
lea eax, [ebp - 0x49c]
push eax
call fcn.0048c880
push edi
push esi
lea ecx, [ebp - 0x284]
push dword [eax]
call fcn.00491650
mov edi, dword [ebp - 0x24]
add esp, 0xc
nop word [eax + eax]
xorps xmm0, xmm0
mov byte [ebp - 0xd4], 0x8f
movups xmmword [ebp - 0xd3], xmm0
mov dword [ebp - 0xc3], 0
xor ecx, ecx
mov word [ebp - 0xbf], 0
mov byte [ebp - 0xbd], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xd4], al
inc ecx
cmp ecx, 1
jb 0x45d990
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xd4]
mov byte [ebp - 0xd3], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x84], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x80], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45d9d2
sub ecx, edx
lea eax, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.00402c40
or edi, 0x100
lea ecx, [ebp - 0x94]
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x274]
cmovae ecx, dword [ebp - 0x94]
cmp dword [ebp - 0x260], 0x10
push ecx
cmovae eax, dword [ebp - 0x274]
push eax
call fcn.00506580
mov ecx, dword [ebp - 0x80]
add esp, 8
mov esi, eax
cmp ecx, 0x10
jb 0x45da5c
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45da52
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
test esi, esi
je 0x45db3a
push 0x5443dc
lea ecx, [ebp - 0x158]
call fcn.00402b70
mov byte [ebp - 4], 0x14
xorps xmm0, xmm0
mov byte [ebp - 0x94], 0x8f
xor ecx, ecx
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45daa0
lea eax, [ebp - 0x94]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0xd4]
mov byte [ebp - 0x93], 0
call fcn.00402b70
or edi, 0x80000
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0x15
call fcn.00402c10
push eax
lea ecx, [ebp - 0x250]
call fcn.00402b70
lea eax, [ebp - 0x158]
mov byte [ebp - 4], 0x16
push eax
lea edx, [ebp - 0x250]
lea ecx, [ebp - 0x274]
call fcn.0040e7f0
add esp, 4
lea ecx, [ebp - 0x250]
call fcn.00402ad0
lea ecx, [ebp - 0xd4]
call fcn.00402ad0
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x13
call fcn.00402ad0
jmp 0x45d960
xorps xmm0, xmm0
mov byte [ebp - 0x11], 0
mov byte [ebp - 0x94], 0x83
xor ecx, ecx
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45db65
lea eax, [ebp - 0x94]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x93], 0
call fcn.00402b70
or edi, 0x10000000
mov dword [ebp - 0x24], edi
sub esp, 0x18
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x28], esp
mov esi, esp
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00402b70
sub esp, 0x18
mov byte [ebp - 4], 0x18
lea eax, [ebp - 0x274]
mov ecx, esp
push eax
call fcn.0048ccc0
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 0x17
call fcn.0040e4f0
add esp, 0x30
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x1a
call fcn.00402ad0
lea ecx, [ebp - 0x3c8]
xor esi, esi
call fcn.0048b950
mov edi, eax
test edi, edi
je 0x45dc35
nop word [eax + eax]
push esi
lea ecx, [ebp - 0x3c8]
call fcn.0048b930
lea edx, [ebx + 8]
mov ecx, eax
call fcn.00490c70
test al, al
jne 0x45dc31
inc esi
cmp esi, edi
jb 0x45dc10
jmp 0x45dc35
mov byte [ebp - 0x11], 1
lea ecx, [ebp - 0x3c8]
call fcn.0048b950
test eax, eax
je 0x45dc4e
cmp byte [ebp - 0x11], 0
je 0x46117b
xorps xmm0, xmm0
mov byte [ebp - 0x2c], 0
mov byte [ebp - 0x94], 0x83
xor ecx, ecx
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45dc80
lea eax, [ebp - 0x94]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x464]
mov byte [ebp - 0x93], 0
call fcn.00402b70
or dword [ebp - 0x24], 0x800000
sub esp, 0x18
mov byte [ebp - 4], 0x1b
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x28], esp
mov esi, esp
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00402b70
sub esp, 0x18
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x448]
mov ecx, esp
push eax
call fcn.0048ccc0
lea ecx, [ebp - 0x280]
mov byte [ebp - 4], 0x1b
call fcn.0040e4f0
add esp, 0x30
lea ecx, [ebp - 0x464]
mov byte [ebp - 4], 0x1e
call fcn.00402ad0
mov edi, dword [ebp - 0x27c]
xor ecx, ecx
mov esi, dword [ebp - 0x280]
mov eax, 0x2aaaaaab
mov dword [ebp - 0x128], ecx
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4600c3
nop dword [eax + eax]
mov eax, dword [ebp - 0x128]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x28], esp
lea eax, [eax + eax*2]
lea eax, [esi + eax*8]
push eax
call fcn.0048ccc0
sub esp, 0x10
mov byte [ebp - 4], 0x1f
lea eax, [ebx + 0x20]
mov ecx, esp
push eax
call fcn.0048a810
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0x1e
call fcn.0041a640
add esp, 0x28
xorps xmm0, xmm0
mov byte [ebp - 4], 0x20
movq qword [ebp - 0x428], xmm0
lea edx, [ebp - 0x430]
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 0x430], 5
movlpd qword [ebp - 0x428], xmm0
call fcn.004951b0
lea ecx, [ebp - 0x430]
mov byte [ebp - 0x11], al
call fcn.0048a7b0
cmp byte [ebp - 0x11], 0
jne 0x460081
movaps xmm0, xmmword [0x551f80]
xor ecx, ecx
movups xmmword [ebp - 0x5d], xmm0
mov word [ebp - 0x4d], 0xb3da
xorps xmm0, xmm0
mov dword [ebp - 0x3b], 0
movups xmmword [ebp - 0x4b], xmm0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x5d], al
inc ecx
cmp ecx, 0x12
jb 0x45ddf0
lea eax, [ebp - 0x5d]
mov dword [0x5655dc], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
mov edi, dword [ebp - 0x24]
or edi, 0x2000
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x21
call fcn.00402c10
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00490ca0
mov ecx, eax
call fcn.004916a0
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x11], al
mov byte [ebp - 4], 0x20
call fcn.00402ad0
movaps xmm0, xmmword [0x551820]
xor ecx, ecx
movups xmmword [ebp - 0x5f], xmm0
mov dword [ebp - 0x4f], 0xb1a5b2d0
xorps xmm0, xmm0
mov dword [ebp - 0x3b], 0
movups xmmword [ebp - 0x4b], xmm0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x5f], al
inc ecx
cmp ecx, 0x14
jb 0x45de80
lea eax, [ebp - 0x5f]
mov dword [0x565540], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x40000
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x22
call fcn.00402c10
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00490ca0
mov ecx, eax
call fcn.004916a0
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x1d], al
mov byte [ebp - 4], 0x20
call fcn.00402ad0
movaps xmm0, xmmword [0x551c10]
xor ecx, ecx
movups xmmword [ebp - 0x5d], xmm0
mov word [ebp - 0x4d], 0xb9cd
xorps xmm0, xmm0
mov dword [ebp - 0x3b], 0
movups xmmword [ebp - 0x4b], xmm0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x5d], al
inc ecx
cmp ecx, 0x12
jb 0x45df10
lea eax, [ebp - 0x5d]
mov dword [0x5655dc], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x1000
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x23
call fcn.00402c10
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00490ca0
mov ecx, eax
call fcn.004916a0
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x2d], al
mov byte [ebp - 4], 0x20
call fcn.00402ad0
xorps xmm0, xmm0
mov dword [ebp - 0x57], 0xd9c3d1c2
mov dword [ebp - 0x53], 0xdbdad0ec
xor ecx, ecx
mov dword [ebp - 0x4f], 0xc9d7d1d6
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x57], al
inc ecx
cmp ecx, 0xc
jb 0x45dfa0
lea eax, [ebp - 0x57]
mov dword [0x565528], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x200
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x24
call fcn.00402c10
push eax
lea ecx, [ebp - 0x2d0]
call fcn.00490ca0
lea ecx, [ebp - 0x250]
push ecx
mov ecx, eax
call fcn.00490de0
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x26
call fcn.00402ad0
xorps xmm0, xmm0
mov byte [ebp - 0x94], 0x83
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
xor ecx, ecx
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45e030
lea eax, [ebp - 0x94]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x47c]
mov byte [ebp - 0x93], 0
call fcn.00402b70
or edi, 0x400
mov dword [ebp - 0x24], edi
mov dword [ebp - 0xb8], edi
sub esp, 0x18
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x47c]
mov dword [ebp - 0x28], esp
mov esi, esp
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00402b70
sub esp, 0x18
mov byte [ebp - 4], 0x28
lea eax, [ebp - 0x250]
mov ecx, esp
push eax
call fcn.0048ccc0
lea ecx, [ebp - 0x25c]
mov byte [ebp - 4], 0x27
call fcn.0040e4f0
add esp, 0x30
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0x2a
call fcn.00402ad0
cmp byte [ebp - 0x11], 0
je 0x45ed81
lea ecx, [ebx + 0x30]
call fcn.0048a300
test eax, eax
je 0x45e697
lea eax, [ebp - 0x1cc]
push eax
lea ecx, [ebx + 0x30]
call fcn.00491720
mov byte [ebp - 4], 0x2b
mov ecx, dword [ebp - 0x1cc]
mov eax, dword [ecx]
mov dword [ebp - 0x28], eax
cmp byte [eax + 0xd], 0
jne 0x45e672
cmp byte [ebp - 0x2c], 0
jne 0x45e66c
cmp byte [eax + 0x28], 0
lea esi, [eax + 0x28]
je 0x45e657
mov ecx, esi
call fcn.0048a300
test eax, eax
je 0x45e657
lea eax, [ebp - 0x218]
mov ecx, esi
push eax
call fcn.0048a3a0
lea eax, [ebp - 0x4dc]
push eax
call fcn.0048a330
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x218]
call fcn.00489ed0
test al, al
je 0x45e657
lea ecx, [ebp - 0x218]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
jne 0x45e657
lea ecx, [ebp - 0x1dc]
push ecx
mov ecx, eax
call fcn.00491720
mov byte [ebp - 4], 0x2c
mov ecx, dword [ebp - 0x1dc]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x45e5da
nop dword [eax]
cmp byte [ebp - 0x2c], 0
jne 0x45e5d4
lea esi, [eax + 0x28]
mov ecx, esi
call fcn.0048a300
test eax, eax
je 0x45e5bf
lea eax, [ebp - 0x208]
mov ecx, esi
push eax
call fcn.0048a3a0
lea eax, [ebp - 0x4ec]
push eax
call fcn.0048a330
lea eax, [ebp - 0x4ec]
push eax
lea ecx, [ebp - 0x208]
call fcn.00489ed0
test al, al
je 0x45e5bf
lea ecx, [ebp - 0x208]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45e5bf
xorps xmm0, xmm0
mov dword [ebp - 0xc4], 0
movups xmmword [ebp - 0xd4], xmm0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
mov byte [ebp - 4], 0x2d
xor ecx, ecx
mov dword [ebp - 0x51], 0xd3dcdfcb
mov word [ebp - 0x4d], 0xdada
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45e254
mov dword [0x565548], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x51]
mov byte [ebp - 0x4b], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x84], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x80], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e290
sub ecx, edx
lea eax, [ebp - 0x51]
push ecx
push eax
lea ecx, [ebp - 0x94]
call fcn.00402c40
or edi, 0x80
mov byte [ebp - 4], 0x2e
lea eax, [ebp - 0x94]
cmp dword [ebp - 0x80], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x94]
push eax
call fcn.00490ca0
mov al, byte [eax]
mov byte [ebp - 4], 0x2d
mov ecx, dword [ebp - 0x80]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x45e30f
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e302
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x45e39f
xorps xmm0, xmm0
mov dword [ebp - 0x51], 0xd3dcdfcb
mov word [ebp - 0x4d], 0xdada
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45e340
lea eax, [ebp - 0x51]
mov dword [0x565548], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x100000
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x2f
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00490ca0
push eax
lea ecx, [ebp - 0xd4]
call fcn.00497fb0
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 0x2d
call fcn.00402ad0
xorps xmm0, xmm0
mov byte [ebp - 0x94], 0x81
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
xor ecx, ecx
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45e3d0
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x93], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e410
sub ecx, edx
lea eax, [ebp - 0x94]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
or edi, 0x40
mov dword [ebp - 0x24], edi
mov byte [ebp - 4], 0x30
lea edx, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
cmovae edx, dword [ebp - 0x78]
sub esp, 0x18
mov ecx, edx
mov dword [ebp - 0xb4], esp
mov edi, esp
mov dword [ebp - 0xb8], edi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e454
sub ecx, esi
mov eax, 0x7fffffff
mov esi, dword [ebp - 0xc4]
sub eax, esi
cmp eax, ecx
jb 0x46137d
cmp dword [ebp - 0xc0], 0x10
lea eax, [ebp - 0xd4]
push esi
cmovae eax, dword [ebp - 0xd4]
push eax
push ecx
push edx
push ecx
push dword [ebp - 0x284]
mov ecx, edi
call fcn.004946d0
mov edi, dword [ebp - 0x24]
or edi, 0x20
mov dword [ebp - 0x24], edi
mov dword [ebp - 0xb8], edi
sub esp, 0xc
mov byte [ebp - 4], 0x31
lea eax, [ebp - 0x25c]
mov byte [ebp - 0x11], 0
mov ecx, esp
push eax
call fcn.0048ba50
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x30
call fcn.0041a980
mov byte [ebp - 4], 0x2d
add esp, 0x24
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x45e50d
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e500
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
mov ecx, dword [ebp - 0x2c]
test al, al
movzx ecx, cl
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 4], 0x2c
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0xc0]
cmp ecx, 0x10
jb 0x45e55e
mov edx, dword [ebp - 0xd4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e554
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x208]
movzx eax, byte [eax]
sub eax, 1
je 0x45e582
sub eax, 1
je 0x45e579
inc dword [ebp - 0x1fc]
jmp 0x45e5a5
add dword [ebp - 0x200], 0x10
jmp 0x45e5a5
mov eax, dword [ebp - 0x204]
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0xb4], eax
call fcn.0048e170
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x204], eax
lea eax, [ebp - 0x4ec]
push eax
lea ecx, [ebp - 0x208]
call fcn.00489ed0
test al, al
jne 0x45e1f0
lea ecx, [ebp - 0x34]
call fcn.0048e170
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
je 0x45e1a0
mov ecx, dword [ebp - 0x1dc]
mov byte [ebp - 4], 0x2b
lea eax, [ebp - 0x1dc]
push dword [ecx + 4]
mov ecx, eax
push eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x1dc]
call fcn.00504f31
mov eax, dword [ebp - 0x218]
add esp, 8
movzx eax, byte [eax]
sub eax, 1
je 0x45e623
sub eax, 1
je 0x45e61a
inc dword [ebp - 0x20c]
jmp 0x45e63d
add dword [ebp - 0x210], 0x10
jmp 0x45e63d
mov eax, dword [ebp - 0x214]
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], eax
call fcn.0048e170
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x214], eax
lea eax, [ebp - 0x4dc]
push eax
lea ecx, [ebp - 0x218]
call fcn.00489ed0
test al, al
jne 0x45e160
lea ecx, [ebp - 0x28]
call fcn.0048e170
mov eax, dword [ebp - 0x28]
cmp byte [eax + 0xd], 0
je 0x45e106
mov ecx, dword [ebp - 0x1cc]
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x1cc]
push dword [ecx + 4]
mov ecx, eax
push eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x1cc]
call fcn.00504f31
add esp, 8
mov edx, dword [ebp - 0x2c]
test dl, dl
jne 0x45ed84
movzx eax, byte [ebx + 0x40]
sub eax, 0
je 0x45ed84
sub eax, 1
je 0x45e6c6
sub eax, 1
jne 0x45e6d4
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 4
jmp 0x45e6cc
mov eax, dword [ebx + 0x48]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x45ed84
lea eax, [ebp - 0x1bc]
push eax
lea ecx, [ebx + 0x40]
call fcn.00491720
mov byte [ebp - 4], 0x32
mov ecx, dword [ebp - 0x1bc]
mov eax, dword [ecx]
mov dword [ebp - 0xb4], eax
cmp byte [eax + 0xd], 0
jne 0x45ed5c
nop
cmp byte [ebp - 0x2c], 0
jne 0x45ed56
cmp byte [eax + 0x28], 0
lea esi, [eax + 0x28]
je 0x45ed38
mov ecx, esi
call fcn.0048a300
test eax, eax
je 0x45ed38
lea eax, [ebp - 0x228]
mov ecx, esi
push eax
call fcn.0048a3a0
lea eax, [ebp - 0x4ac]
push eax
call fcn.0048a330
lea eax, [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x228]
call fcn.00489ed0
test al, al
je 0x45ed38
nop word [eax + eax]
lea ecx, [ebp - 0x228]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
jne 0x45ed38
lea ecx, [ebp - 0x1c4]
push ecx
mov ecx, eax
call fcn.00491720
mov byte [ebp - 4], 0x33
mov ecx, dword [ebp - 0x1c4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x45ecb8
nop dword [eax]
cmp byte [ebp - 0x2c], 0
jne 0x45ecb2
lea ecx, [eax + 0x28]
movzx eax, byte [ecx]
sub eax, 0
je 0x45ec9a
sub eax, 1
je 0x45e7d0
sub eax, 1
jne 0x45e7de
mov eax, dword [ecx + 8]
mov edx, dword [eax + 4]
sub edx, dword [eax]
sar edx, 4
jmp 0x45e7d6
mov eax, dword [ecx + 8]
mov edx, dword [eax + 4]
test edx, edx
je 0x45ec9a
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x11c], 0
mov dword [ebp - 0x118], 0x80000000
sub edx, 1
je 0x45e86d
sub edx, 1
je 0x45e860
mov dword [ebp - 0x118], 0x80000000
sub eax, 0
je 0x45e854
sub eax, 1
je 0x45e86d
sub eax, 1
je 0x45e860
mov dword [ebp - 0x118], 0
jmp 0x45e87a
mov dword [ebp - 0x118], 1
jmp 0x45e87a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x11c], eax
jmp 0x45e87a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x4bc]
push eax
call fcn.0048a330
lea eax, [ebp - 0x4bc]
push eax
lea ecx, [ebp - 0x124]
call fcn.00489ed0
test al, al
je 0x45ec9a
lea ecx, [ebp - 0x124]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45ec9a
xorps xmm0, xmm0
mov dword [ebp - 0xc4], 0
movups xmmword [ebp - 0xd4], xmm0
mov dword [ebp - 0xc0], 0xf
mov byte [ebp - 0xd4], 0
mov byte [ebp - 4], 0x34
xor ecx, ecx
mov dword [ebp - 0x51], 0xd3dcdfcb
mov word [ebp - 0x4d], 0xdada
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45e904
mov dword [0x565548], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x51]
mov byte [ebp - 0x4b], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45e937
sub ecx, edx
lea eax, [ebp - 0x51]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
or dword [ebp - 0x18], 0x40000000
mov byte [ebp - 4], 0x35
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
mov al, byte [eax]
mov byte [ebp - 4], 0x34
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x45e9ab
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45e99e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x11]
add esp, 8
test al, al
je 0x45ea87
xorps xmm0, xmm0
mov dword [ebp - 0x51], 0xd3dcdfcb
mov word [ebp - 0x4d], 0xdada
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x51], al
inc ecx
cmp ecx, 6
jb 0x45e9e0
mov dword [0x565548], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x51]
mov byte [ebp - 0x4b], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45ea13
sub ecx, edx
lea eax, [ebp - 0x51]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
or edi, 0x10
mov byte [ebp - 4], 0x36
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
push eax
lea ecx, [ebp - 0xd4]
call fcn.00497fb0
mov byte [ebp - 4], 0x34
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x45ea87
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ea7d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov byte [ebp - 0x94], 0x81
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
xor ecx, ecx
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x45eab0
mov dword [0x565620], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x93], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eaf0
sub ecx, edx
lea eax, [ebp - 0x94]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
or edi, 1
mov dword [ebp - 0x24], edi
mov dword [ebp - 0xb8], edi
mov byte [ebp - 4], 0x37
lea edx, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
cmovae edx, dword [ebp - 0x78]
sub esp, 0x18
mov ecx, edx
mov dword [ebp - 0xbc], esp
mov edi, esp
mov dword [ebp - 0x28], edi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eb37
sub ecx, esi
mov eax, 0x7fffffff
mov esi, dword [ebp - 0xc4]
sub eax, esi
cmp eax, ecx
jb 0x46137d
cmp dword [ebp - 0xc0], 0x10
lea eax, [ebp - 0xd4]
push esi
cmovae eax, dword [ebp - 0xd4]
push eax
push ecx
push edx
push ecx
push dword [ebp - 0xbc]
mov ecx, edi
call fcn.004946d0
mov eax, dword [ebp - 0x18]
or eax, 0x80000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
sub esp, 0xc
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x25c]
mov byte [ebp - 0x11], 0
mov ecx, esp
push eax
call fcn.0048ba50
mov cl, byte [ebp - 0x11]
mov byte [ebp - 4], 0x37
call fcn.0041a980
mov byte [ebp - 4], 0x34
add esp, 0x24
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x11], al
cmp ecx, 0x10
jb 0x45ebec
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ebe2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x2c]
mov ecx, 1
cmp byte [ebp - 0x11], 0
movzx eax, al
cmovne eax, ecx
mov byte [ebp - 4], 0x33
mov ecx, dword [ebp - 0xc0]
mov byte [ebp - 0x2c], al
cmp ecx, 0x10
jb 0x45ec3f
mov edx, dword [ebp - 0xd4]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45ec35
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x124]
movzx eax, byte [eax]
sub eax, 1
je 0x45ec63
sub eax, 1
je 0x45ec5a
inc dword [ebp - 0x118]
jmp 0x45ec7d
add dword [ebp - 0x11c], 0x10
jmp 0x45ec7d
mov eax, dword [ebp - 0x120]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x4bc]
push eax
lea ecx, [ebp - 0x124]
call fcn.00489ed0
mov edi, dword [ebp - 0x24]
test al, al
jne 0x45e8a0
lea ecx, [ebp - 0x34]
call fcn.0048e170
mov eax, dword [ebp - 0x34]
mov edi, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
je 0x45e7a0
mov ecx, dword [ebp - 0x1c4]
mov byte [ebp - 4], 0x32
lea eax, [ebp - 0x1c4]
push dword [ecx + 4]
mov ecx, eax
push eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x1c4]
call fcn.00504f31
mov eax, dword [ebp - 0x228]
add esp, 8
movzx eax, byte [eax]
sub eax, 1
je 0x45ed01
sub eax, 1
je 0x45ecf8
inc dword [ebp - 0x21c]
jmp 0x45ed1b
add dword [ebp - 0x220], 0x10
jmp 0x45ed1b
mov eax, dword [ebp - 0x224]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x224], eax
lea eax, [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x228]
call fcn.00489ed0
mov edi, dword [ebp - 0x24]
test al, al
jne 0x45e760
lea ecx, [ebp - 0xb4]
call fcn.0048e170
mov eax, dword [ebp - 0xb4]
mov edi, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
je 0x45e700
mov ecx, dword [ebp - 0x1bc]
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x1bc]
push dword [ecx + 4]
mov ecx, eax
push eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x1bc]
call fcn.00504f31
add esp, 8
mov edx, dword [ebp - 0x2c]
cmp byte [ebp - 0x1d], 0
je 0x45f7f4
test dl, dl
jne 0x45f7f4
movzx eax, byte [ebx + 0x50]
sub eax, 0
je 0x45f297
sub eax, 1
je 0x45edba
sub eax, 1
jne 0x45edc8
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 4
jmp 0x45edc0
mov eax, dword [ebx + 0x58]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x45f297
lea eax, [ebp - 0x1d4]
push eax
lea ecx, [ebx + 0x50]
call fcn.00491720
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x1d4]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x45f273
cmp byte [ebp - 0x2c], 0
jne 0x45f26d
lea ecx, [eax + 0x28]
mov dword [ebp - 0x100], 0
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0
mov dword [ebp - 0x104], ecx
mov dword [ebp - 0x100], 0
mov dword [ebp - 0xfc], 0
mov dword [ebp - 0xf8], 0x80000000
sub edx, 1
je 0x45ee8c
sub edx, 1
je 0x45ee7f
mov dword [ebp - 0xf8], 0x80000000
sub eax, 0
je 0x45ee73
sub eax, 1
je 0x45ee8c
sub eax, 1
je 0x45ee7f
mov dword [ebp - 0xf8], 0
jmp 0x45ee99
mov dword [ebp - 0xf8], 1
jmp 0x45ee99
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0xfc], eax
jmp 0x45ee99
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x100], eax
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x184], ecx
mov dword [ebp - 0x180], 0
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x178], 0x80000000
sub edx, 1
je 0x45ef18
sub edx, 1
je 0x45ef0a
mov dword [ebp - 0x178], 0x80000000
sub eax, 1
je 0x45ef18
sub eax, 1
je 0x45ef0a
mov dword [ebp - 0x178], 1
jmp 0x45ef23
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x17c], eax
jmp 0x45ef23
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x180], eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x104]
call fcn.00489ed0
test al, al
je 0x45f258
nop dword [eax]
lea ecx, [ebp - 0x104]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45f258
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 0x3a
xor ecx, ecx
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45efb0
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45eff0
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x18]
or eax, 0x8000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x3b
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
mov al, byte [eax]
mov byte [ebp - 4], 0x3a
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x1d], al
cmp ecx, 0x10
jb 0x45f06e
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f061
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x1d]
add esp, 8
test al, al
je 0x45f173
xorps xmm0, xmm0
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
xor ecx, ecx
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45f0b0
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f0f0
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x24]
or eax, 4
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xb8], eax
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
push eax
lea ecx, [ebp - 0x94]
call fcn.00497fb0
mov byte [ebp - 4], 0x3a
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x45f173
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f169
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x94]
mov ecx, esp
mov dword [ebp - 0xbc], esp
push eax
call fcn.0048ccc0
sub esp, 0xc
mov byte [ebp - 4], 0x3d
lea eax, [ebp - 0x25c]
mov byte [ebp - 0x1d], 1
mov ecx, esp
push eax
call fcn.0048ba50
mov cl, byte [ebp - 0x1d]
mov byte [ebp - 4], 0x3a
call fcn.0041a980
mov ecx, dword [ebp - 0x2c]
add esp, 0x24
test al, al
movzx ecx, cl
mov eax, 1
mov byte [ebp - 4], 0x39
cmovne ecx, eax
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp - 0x80]
cmp ecx, 0x10
jb 0x45f200
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f1f6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x104]
movzx eax, byte [eax]
sub eax, 1
je 0x45f224
sub eax, 1
je 0x45f21b
inc dword [ebp - 0xf8]
jmp 0x45f23e
add dword [ebp - 0xfc], 0x10
jmp 0x45f23e
mov eax, dword [ebp - 0x100]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x184]
push eax
lea ecx, [ebp - 0x104]
call fcn.00489ed0
test al, al
jne 0x45ef40
lea ecx, [ebp - 0x34]
call fcn.0048e170
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
je 0x45edf0
mov ecx, dword [ebp - 0x1d4]
push dword [ecx + 4]
lea eax, [ebp - 0x1d4]
push eax
mov ecx, eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x1d4]
call fcn.00504f31
mov edx, dword [ebp - 0x2c]
add esp, 8
test dl, dl
jne 0x45f7f4
movzx eax, byte [ebx + 0x60]
sub eax, 0
je 0x45f7f4
sub eax, 1
je 0x45f2c3
sub eax, 1
jne 0x45f2d1
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 4
jmp 0x45f2c9
mov eax, dword [ebx + 0x68]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x45f7f4
mov byte [ebp - 4], 0x3e
push 0x38
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
call fcn.00504cb0
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x130]
add esp, 4
lea ecx, [ebx + 0x60]
or esi, 8
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xb8], esi
call fcn.004a0a30
mov ecx, dword [ebp - 0x130]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x45f7c5
nop dword [eax]
cmp byte [ebp - 0x2c], 0
jne 0x45f7bc
lea ecx, [eax + 0x28]
mov dword [ebp - 0x110], 0
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0x80000000
sub edx, 1
je 0x45f3dc
sub edx, 1
je 0x45f3cf
mov dword [ebp - 0x108], 0x80000000
sub eax, 0
je 0x45f3c3
sub eax, 1
je 0x45f3dc
sub eax, 1
je 0x45f3cf
mov dword [ebp - 0x108], 0
jmp 0x45f3e9
mov dword [ebp - 0x108], 1
jmp 0x45f3e9
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x10c], eax
jmp 0x45f3e9
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x110], eax
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0
mov dword [ebp - 0x194], ecx
mov dword [ebp - 0x190], 0
mov dword [ebp - 0x18c], 0
mov dword [ebp - 0x188], 0x80000000
sub edx, 1
je 0x45f468
sub edx, 1
je 0x45f45a
mov dword [ebp - 0x188], 0x80000000
sub eax, 1
je 0x45f468
sub eax, 1
je 0x45f45a
mov dword [ebp - 0x188], 1
jmp 0x45f473
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x18c], eax
jmp 0x45f473
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x190], eax
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x114]
call fcn.00489ed0
test al, al
je 0x45f7a7
nop dword [eax]
lea ecx, [ebp - 0x114]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45f7a7
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 0x3f
xor ecx, ecx
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45f500
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f540
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x18]
or eax, 0x2000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x40
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
mov al, byte [eax]
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x1d], al
cmp ecx, 0x10
jb 0x45f5be
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f5b1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x1d]
add esp, 8
test al, al
je 0x45f6c2
xorps xmm0, xmm0
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
xor ecx, ecx
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45f600
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45f640
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x18]
or eax, 0x10000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x41
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
push eax
lea ecx, [ebp - 0x94]
call fcn.00497fb0
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x45f6c2
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f6b8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x94]
mov ecx, esp
mov dword [ebp - 0xbc], esp
push eax
call fcn.0048ccc0
sub esp, 0xc
mov byte [ebp - 4], 0x42
lea eax, [ebp - 0x25c]
mov byte [ebp - 0x1d], 1
mov ecx, esp
push eax
call fcn.0048ba50
mov cl, byte [ebp - 0x1d]
mov byte [ebp - 4], 0x3f
call fcn.0041a980
mov ecx, dword [ebp - 0x2c]
add esp, 0x24
test al, al
movzx ecx, cl
mov eax, 1
mov byte [ebp - 4], 0x3e
cmovne ecx, eax
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp - 0x80]
cmp ecx, 0x10
jb 0x45f74f
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45f745
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x114]
movzx eax, byte [eax]
sub eax, 1
je 0x45f773
sub eax, 1
je 0x45f76a
inc dword [ebp - 0x108]
jmp 0x45f78d
add dword [ebp - 0x10c], 0x10
jmp 0x45f78d
mov eax, dword [ebp - 0x110]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x194]
push eax
lea ecx, [ebp - 0x114]
call fcn.00489ed0
test al, al
jne 0x45f490
lea ecx, [ebp - 0x34]
call fcn.0048e170
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
je 0x45f340
mov ecx, dword [ebp - 0x130]
mov esi, dword [ebp - 0x24]
push dword [ecx + 4]
lea eax, [ebp - 0x130]
and esi, 0xfffffff7
push eax
mov ecx, eax
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xb8], esi
call fcn.00492d60
push 0x38
push dword [ebp - 0x130]
call fcn.00504f31
add esp, 8
jmp 0x45f7f7
mov esi, dword [ebp - 0x24]
cmp byte [ebp - 0x2d], 0
je 0x460038
cmp byte [ebp - 0x2c], 0
jne 0x460038
movzx eax, byte [ebx + 0x70]
sub eax, 0
je 0x460038
sub eax, 1
je 0x45f82f
sub eax, 1
jne 0x45f83d
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
sar ecx, 4
jmp 0x45f835
mov eax, dword [ebx + 0x78]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x460038
mov byte [ebp - 4], 0x43
push 0x38
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0
call fcn.00504cb0
add esp, 4
lea edx, [ebp - 0x138]
or esi, 2
lea ecx, [ebx + 0x70]
mov dword [ebp - 0x24], esi
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x138], eax
mov dword [ebp - 0xb8], esi
call fcn.004a0a30
mov ecx, dword [ebp - 0x138]
mov eax, dword [ecx]
mov dword [ebp - 0xb4], eax
cmp byte [eax + 0xd], 0
jne 0x460011
cmp byte [ebp - 0x2c], 0
jne 0x460008
mov dl, byte [eax + 0x28]
lea ecx, [eax + 0x28]
test dl, dl
je 0x45ffed
movzx edx, dl
sub edx, 0
je 0x45ffed
sub edx, 1
je 0x45f8e0
sub edx, 1
jne 0x45f8ee
mov eax, dword [eax + 0x30]
mov edx, dword [eax + 4]
sub edx, dword [eax]
sar edx, 4
jmp 0x45f8e6
mov eax, dword [eax + 0x30]
mov edx, dword [eax + 4]
test edx, edx
je 0x45ffed
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xe4], ecx
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0x80000000
sub edx, 1
je 0x45f97d
sub edx, 1
je 0x45f970
mov dword [ebp - 0xd8], 0x80000000
sub eax, 0
je 0x45f964
sub eax, 1
je 0x45f97d
sub eax, 1
je 0x45f970
mov dword [ebp - 0xd8], 0
jmp 0x45f98a
mov dword [ebp - 0xd8], 1
jmp 0x45f98a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0xdc], eax
jmp 0x45f98a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0xe0], eax
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1b4], ecx
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x1ac], 0
mov dword [ebp - 0x1a8], 0x80000000
sub edx, 1
je 0x45fa09
sub edx, 1
je 0x45f9fb
mov dword [ebp - 0x1a8], 0x80000000
sub eax, 1
je 0x45fa09
sub eax, 1
je 0x45f9fb
mov dword [ebp - 0x1a8], 1
jmp 0x45fa14
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1ac], eax
jmp 0x45fa14
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x1b0], eax
lea eax, [ebp - 0x1b4]
push eax
lea ecx, [ebp - 0xe4]
call fcn.00489ed0
test al, al
je 0x45ffed
nop
lea ecx, [ebp - 0xe4]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45ffed
mov byte [ebp - 4], 0x44
push 0x38
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
call fcn.00504cb0
add esp, 4
lea edx, [ebp - 0x140]
mov ecx, esi
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
mov dword [ebp - 0x140], eax
mov eax, dword [ebp - 0x18]
or eax, 0x20000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.004a0a30
mov ecx, dword [ebp - 0x140]
mov eax, dword [ecx]
mov dword [ebp - 0x34], eax
cmp byte [eax + 0xd], 0
jne 0x45ff62
nop dword [eax]
cmp byte [ebp - 0x2c], 0
jne 0x45ff5c
lea ecx, [eax + 0x28]
movzx eax, byte [ecx]
sub eax, 0
je 0x45ff47
sub eax, 1
je 0x45fae0
sub eax, 1
jne 0x45faee
mov eax, dword [ecx + 8]
mov edx, dword [eax + 4]
sub edx, dword [eax]
sar edx, 4
jmp 0x45fae6
mov eax, dword [ecx + 8]
mov edx, dword [eax + 4]
test edx, edx
je 0x45ff47
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0
mov dword [ebp - 0xf4], ecx
mov dword [ebp - 0xf0], 0
mov dword [ebp - 0xec], 0
mov dword [ebp - 0xe8], 0x80000000
sub edx, 1
je 0x45fb7d
sub edx, 1
je 0x45fb70
mov dword [ebp - 0xe8], 0x80000000
sub eax, 0
je 0x45fb64
sub eax, 1
je 0x45fb7d
sub eax, 1
je 0x45fb70
mov dword [ebp - 0xe8], 0
jmp 0x45fb8a
mov dword [ebp - 0xe8], 1
jmp 0x45fb8a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0xec], eax
jmp 0x45fb8a
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0xf0], eax
movzx eax, byte [ecx]
mov edx, eax
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
mov dword [ebp - 0x1a4], ecx
mov dword [ebp - 0x1a0], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0x80000000
sub edx, 1
je 0x45fc09
sub edx, 1
je 0x45fbfb
mov dword [ebp - 0x198], 0x80000000
sub eax, 1
je 0x45fc09
sub eax, 1
je 0x45fbfb
mov dword [ebp - 0x198], 1
jmp 0x45fc14
mov eax, dword [ecx + 8]
mov eax, dword [eax + 4]
mov dword [ebp - 0x19c], eax
jmp 0x45fc14
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x1a0], eax
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.00489ed0
test al, al
je 0x45ff47
nop
lea ecx, [ebp - 0xf4]
call fcn.00489fe0
cmp byte [ebp - 0x2c], 0
mov esi, eax
jne 0x45ff47
xorps xmm0, xmm0
mov dword [ebp - 0x84], 0
movups xmmword [ebp - 0x94], xmm0
mov dword [ebp - 0x80], 0xf
mov byte [ebp - 0x94], 0
mov byte [ebp - 4], 0x45
xor ecx, ecx
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45fca0
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45fce0
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x18]
or eax, 0x1000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
mov al, byte [eax]
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x2d], al
cmp ecx, 0x10
jb 0x45fd5e
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fd51
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 0x2d]
add esp, 8
test al, al
je 0x45fe62
xorps xmm0, xmm0
mov word [ebp - 0xb0], 0xc2da
mov byte [ebp - 0xae], 0xdd
xor ecx, ecx
movups xmmword [ebp - 0xad], xmm0
mov dword [ebp - 0x9d], 0
mov word [ebp - 0x99], 0
mov byte [ebp - 0x97], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0xb0], al
inc ecx
cmp ecx, 3
jb 0x45fda0
mov dword [0x565590], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0xb0]
mov byte [ebp - 0xad], 0
movups xmmword [ebp - 0x78], xmm0
mov dword [ebp - 0x68], 0
lea edx, [ecx + 1]
mov dword [ebp - 0x64], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x45fde0
sub ecx, edx
lea eax, [ebp - 0xb0]
push ecx
push eax
lea ecx, [ebp - 0x78]
call fcn.00402c40
mov eax, dword [ebp - 0x18]
or eax, 0x4000000
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x47
lea eax, [ebp - 0x78]
cmp dword [ebp - 0x64], 0x10
mov ecx, esi
cmovae eax, dword [ebp - 0x78]
push eax
call fcn.00490ca0
push eax
lea ecx, [ebp - 0x94]
call fcn.00497fb0
mov byte [ebp - 4], 0x45
mov ecx, dword [ebp - 0x64]
cmp ecx, 0x10
jb 0x45fe62
mov edx, dword [ebp - 0x78]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fe58
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
sub esp, 0x18
lea eax, [ebp - 0x94]
mov ecx, esp
mov dword [ebp - 0xbc], esp
push eax
call fcn.0048ccc0
sub esp, 0xc
mov byte [ebp - 4], 0x48
lea eax, [ebp - 0x25c]
mov byte [ebp - 0x2d], 1
mov ecx, esp
push eax
call fcn.0048ba50
mov cl, byte [ebp - 0x2d]
mov byte [ebp - 4], 0x45
call fcn.0041a980
mov ecx, dword [ebp - 0x2c]
add esp, 0x24
test al, al
movzx ecx, cl
mov eax, 1
mov byte [ebp - 4], 0x44
cmovne ecx, eax
mov byte [ebp - 0x2c], cl
mov ecx, dword [ebp - 0x80]
cmp ecx, 0x10
jb 0x45feef
mov edx, dword [ebp - 0x94]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45fee5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0xf4]
movzx eax, byte [eax]
sub eax, 1
je 0x45ff13
sub eax, 1
je 0x45ff0a
inc dword [ebp - 0xe8]
jmp 0x45ff2d
add dword [ebp - 0xec], 0x10
jmp 0x45ff2d
mov eax, dword [ebp - 0xf0]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xf0], eax
lea eax, [ebp - 0x1a4]
push eax
lea ecx, [ebp - 0xf4]
call fcn.00489ed0
test al, al
jne 0x45fc30
lea ecx, [ebp - 0x34]
call fcn.0048e170
mov eax, dword [ebp - 0x34]
cmp byte [eax + 0xd], 0
je 0x45fab0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x18]
and eax, 0xdfffffff
mov byte [ebp - 4], 0x43
push dword [ecx + 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x140]
push eax
mov ecx, eax
call fcn.00492d60
push 0x38
push dword [ebp - 0x140]
call fcn.00504f31
mov eax, dword [ebp - 0xe4]
add esp, 8
movzx eax, byte [eax]
sub eax, 1
je 0x45ffb9
sub eax, 1
je 0x45ffb0
inc dword [ebp - 0xd8]
jmp 0x45ffd3
add dword [ebp - 0xdc], 0x10
jmp 0x45ffd3
mov eax, dword [ebp - 0xe0]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x1b4]
push eax
lea ecx, [ebp - 0xe4]
call fcn.00489ed0
test al, al
jne 0x45fa30
lea ecx, [ebp - 0xb4]
call fcn.0048e170
mov eax, dword [ebp - 0xb4]
cmp byte [eax + 0xd], 0
je 0x45f8a5
mov ecx, dword [ebp - 0x138]
mov esi, dword [ebp - 0x24]
push dword [ecx + 4]
lea eax, [ebp - 0x138]
and esi, 0xfffffffd
push eax
mov ecx, eax
mov dword [ebp - 0x24], esi
call fcn.00492d60
push 0x38
push dword [ebp - 0x138]
call fcn.00504f31
add esp, 8
lea ecx, [ebp - 0x25c]
call fcn.0048eeb0
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x23c]
cmp ecx, 0x10
jb 0x460081
mov edx, dword [ebp - 0x250]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x460077
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0x1e
call fcn.0048a7b0
mov edi, dword [ebp - 0x27c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x280]
mov ecx, edi
inc dword [ebp - 0x128]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x128], eax
jb 0x45dd40
sub edi, esi
mov eax, 0x2aaaaaab
imul edi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4600e2
cmp byte [ebp - 0x2c], 0
je 0x461170
xorps xmm0, xmm0
mov dword [ebp - 0x29f], 0xd7c9d581
movups xmmword [ebp - 0x29b], xmm0
mov dword [ebp - 0x28b], 0
xor ecx, ecx
mov word [ebp - 0x287], 0
mov byte [ebp - 0x285], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x29f], al
inc ecx
cmp ecx, 4
jb 0x460112
lea eax, [ebp - 0x29f]
mov dword [0x5655d8], ecx
push eax
lea ecx, [ebp - 0x57c]
mov byte [ebp - 0x29b], 0
call fcn.00402b70
mov edi, dword [ebp - 0x24]
or edi, 0x4000
lea ecx, [ebp - 0x57c]
mov byte [ebp - 4], 0x49
call fcn.00402c10
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00402b70
lea ecx, [ebp - 0x57c]
mov byte [ebp - 4], 0x4b
call fcn.00402ad0
xorps xmm0, xmm0
mov byte [ebp - 0x78], 0x81
movups xmmword [ebp - 0x77], xmm0
mov dword [ebp - 0x67], 0
xor ecx, ecx
mov word [ebp - 0x63], 0
mov byte [ebp - 0x61], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x78], al
inc ecx
cmp ecx, 1
jb 0x460193
lea eax, [ebp - 0x78]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x47c]
mov byte [ebp - 0x77], 0
call fcn.00402b70
or edi, 0x800
sub esp, 0x18
mov byte [ebp - 4], 0x4c
lea ecx, [ebp - 0x47c]
mov dword [ebp - 0xbc], esp
mov esi, esp
call fcn.00402c10
push eax
mov ecx, esi
call fcn.00402b70
sub esp, 0x18
mov byte [ebp - 4], 0x4d
lea eax, [ebp - 0x41c]
mov ecx, esp
push eax
call fcn.0048ccc0
lea ecx, [ebp - 0x3d4]
mov byte [ebp - 4], 0x4c
call fcn.0040e4f0
add esp, 0x30
lea ecx, [ebp - 0x47c]
mov byte [ebp - 4], 0x4f
call fcn.00402ad0
lea ecx, [ebp - 0x3d4]
call fcn.0048b950
test eax, eax
je 0x460e61
call fcn.0048b950
dec eax
push eax
call fcn.0048b930
push eax
lea ecx, [ebp - 0x1f8]
call fcn.0048cb10
xorps xmm0, xmm0
mov word [ebp - 0x386], 0xc8ca
mov byte [ebp - 0x384], 0xd4
xor ecx, ecx
movups xmmword [ebp - 0x383], xmm0
mov dword [ebp - 0x373], 0
mov word [ebp - 0x36f], 0
mov byte [ebp - 0x36d], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x386], al
inc ecx
cmp ecx, 3
jb 0x460280
lea eax, [ebp - 0x386]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x404]
mov byte [ebp - 0x383], 0
call fcn.00402b70
or edi, 0x200000
mov byte [ebp - 4], 0x50
lea ecx, [ebp - 0x404]
mov esi, dword [ebp - 0x18]
or esi, 1
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0xb0]
call fcn.00402b70
mov dword [ebp - 4], 0x51
lea ecx, [ebp - 0x1f8]
or esi, 2
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x3a0], 0xc3c2
mov byte [ebp - 0x39e], 0xd8
xor ecx, ecx
movups xmmword [ebp - 0x39d], xmm0
mov dword [ebp - 0x38d], 0
mov word [ebp - 0x389], 0
mov byte [ebp - 0x387], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x3a0], al
inc ecx
cmp ecx, 3
jb 0x460335
lea eax, [ebp - 0x3a0]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x494]
mov byte [ebp - 0x39d], 0
call fcn.00402b70
or edi, 0x1000000
mov dword [ebp - 4], 0x52
lea ecx, [ebp - 0x494]
or esi, 4
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x534]
call fcn.00402b70
mov dword [ebp - 4], 0x53
lea ecx, [ebp - 0x1f8]
or esi, 8
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x3ba], 0xd3dc
mov byte [ebp - 0x3b8], 0xc3
xor ecx, ecx
movups xmmword [ebp - 0x3b7], xmm0
mov dword [ebp - 0x3a7], 0
mov word [ebp - 0x3a3], 0
mov byte [ebp - 0x3a1], 0
nop word [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x3ba], al
inc ecx
cmp ecx, 3
jb 0x4603f0
lea eax, [ebp - 0x3ba]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x3ec]
mov byte [ebp - 0x3b7], 0
call fcn.00402b70
or edi, 0x4000000
mov dword [ebp - 4], 0x54
lea ecx, [ebp - 0x3ec]
or esi, 0x10
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x51c]
call fcn.00402b70
mov dword [ebp - 4], 0x55
lea ecx, [ebp - 0x1f8]
or esi, 0x20
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x2ea], 0xc8db
mov byte [ebp - 0x2e8], 0xc5
xor ecx, ecx
movups xmmword [ebp - 0x2e7], xmm0
mov dword [ebp - 0x2d7], 0
mov word [ebp - 0x2d3], 0
mov byte [ebp - 0x2d1], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x2ea], al
inc ecx
cmp ecx, 3
jb 0x4604a5
lea eax, [ebp - 0x2ea]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x5c4]
mov byte [ebp - 0x2e7], 0
call fcn.00402b70
or dword [ebp - 0x7c], 1
mov dword [ebp - 4], 0x56
lea ecx, [ebp - 0x5c4]
or esi, 0x40
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x504]
call fcn.00402b70
mov dword [ebp - 4], 0x57
lea ecx, [ebp - 0x1f8]
or esi, 0x80
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x304], 0xdfcb
mov byte [ebp - 0x302], 0xd2
xor ecx, ecx
movups xmmword [ebp - 0x301], xmm0
mov dword [ebp - 0x2f1], 0
mov word [ebp - 0x2ed], 0
mov byte [ebp - 0x2eb], 0
nop dword [eax + eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x304], al
inc ecx
cmp ecx, 3
jb 0x460560
lea eax, [ebp - 0x304]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x5ac]
mov byte [ebp - 0x301], 0
call fcn.00402b70
or dword [ebp - 0x7c], 2
mov dword [ebp - 4], 0x58
lea ecx, [ebp - 0x5ac]
or esi, 0x100
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x63c]
call fcn.00402b70
mov dword [ebp - 4], 0x59
lea ecx, [ebp - 0x1f8]
or esi, 0x200
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov dword [ebp - 0x2ba], 0xcad2dfcb
movups xmmword [ebp - 0x2b6], xmm0
mov dword [ebp - 0x2a6], 0
xor ecx, ecx
mov word [ebp - 0x2a2], 0
mov byte [ebp - 0x2a0], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x2ba], al
inc ecx
cmp ecx, 4
jb 0x460613
lea eax, [ebp - 0x2ba]
mov dword [0x5655d8], ecx
push eax
lea ecx, [ebp - 0x594]
mov byte [ebp - 0x2b6], 0
call fcn.00402b70
or dword [ebp - 0x7c], 4
mov dword [ebp - 4], 0x5a
lea ecx, [ebp - 0x594]
or esi, 0x400
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x624]
call fcn.00402b70
mov dword [ebp - 4], 0x5b
lea ecx, [ebp - 0x1f8]
or esi, 0x800
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x31e], 0xdedf
mov byte [ebp - 0x31c], 0xd6
xor ecx, ecx
movups xmmword [ebp - 0x31b], xmm0
mov dword [ebp - 0x30b], 0
mov word [ebp - 0x307], 0
mov byte [ebp - 0x305], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x31e], al
inc ecx
cmp ecx, 3
jb 0x4606d0
lea eax, [ebp - 0x31e]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0xd4]
mov byte [ebp - 0x31b], 0
call fcn.00402b70
or dword [ebp - 0x7c], 8
mov dword [ebp - 4], 0x5c
lea ecx, [ebp - 0xd4]
or esi, 0x1000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x60c]
call fcn.00402b70
mov dword [ebp - 4], 0x5d
lea ecx, [ebp - 0x1f8]
or esi, 0x2000
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x338], 0xc0c5
mov byte [ebp - 0x336], 0xd6
xor ecx, ecx
movups xmmword [ebp - 0x335], xmm0
mov dword [ebp - 0x325], 0
mov word [ebp - 0x321], 0
mov byte [ebp - 0x31f], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x338], al
inc ecx
cmp ecx, 3
jb 0x460790
lea eax, [ebp - 0x338]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x94]
mov byte [ebp - 0x335], 0
call fcn.00402b70
or dword [ebp - 0x7c], 0x10
mov dword [ebp - 4], 0x5e
lea ecx, [ebp - 0x94]
or esi, 0x4000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x5f4]
call fcn.00402b70
mov dword [ebp - 4], 0x5f
lea ecx, [ebp - 0x1f8]
or esi, 0x8000
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov dword [ebp - 0x4f], 0xd5d4c0c5
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
xor ecx, ecx
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 4
jb 0x460834
lea eax, [ebp - 0x4f]
mov dword [0x5655d8], ecx
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or dword [ebp - 0x7c], 0x20
mov dword [ebp - 4], 0x60
lea ecx, [ebp - 0x78]
or esi, 0x10000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x5dc]
call fcn.00402b70
mov dword [ebp - 4], 0x61
lea ecx, [ebp - 0x1f8]
or esi, 0x20000
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x352], 0xddcd
mov byte [ebp - 0x350], 0xc1
xor ecx, ecx
movups xmmword [ebp - 0x34f], xmm0
mov dword [ebp - 0x33f], 0
mov word [ebp - 0x33b], 0
mov byte [ebp - 0x339], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x352], al
inc ecx
cmp ecx, 3
jb 0x4608e0
lea eax, [ebp - 0x352]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x250]
mov byte [ebp - 0x34f], 0
call fcn.00402b70
or dword [ebp - 0x7c], 0x40
mov dword [ebp - 4], 0x62
lea ecx, [ebp - 0x250]
or esi, 0x40000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x66c]
call fcn.00402b70
mov dword [ebp - 4], 0x63
lea ecx, [ebp - 0x1f8]
or esi, 0x80000
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x36c], 0xd1cd
mov byte [ebp - 0x36a], 0xc5
xor ecx, ecx
movups xmmword [ebp - 0x369], xmm0
mov dword [ebp - 0x359], 0
mov word [ebp - 0x355], 0
mov byte [ebp - 0x353], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x36c], al
inc ecx
cmp ecx, 3
jb 0x4609a0
lea eax, [ebp - 0x36c]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x369], 0
call fcn.00402b70
or dword [ebp - 0x7c], 0x80
mov dword [ebp - 4], 0x64
lea ecx, [ebp - 0x158]
or esi, 0x100000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x654]
call fcn.00402b70
mov dword [ebp - 4], 0x65
lea ecx, [ebp - 0x1f8]
or esi, 0x200000
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
test al, al
je 0x460adf
xorps xmm0, xmm0
mov word [ebp - 0x172], 0xd2d9
mov byte [ebp - 0x170], 0xc2
xor ecx, ecx
movups xmmword [ebp - 0x16f], xmm0
mov dword [ebp - 0x15f], 0
mov word [ebp - 0x15b], 0
mov byte [ebp - 0x159], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x172], al
inc ecx
cmp ecx, 3
jb 0x460a60
lea eax, [ebp - 0x172]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x464]
mov byte [ebp - 0x16f], 0
call fcn.00402b70
or dword [ebp - 0x7c], 0x100
mov dword [ebp - 4], 0x66
lea ecx, [ebp - 0x464]
or esi, 0x400000
mov dword [ebp - 0x1c], esi
call fcn.00402c10
push eax
lea ecx, [ebp - 0x684]
call fcn.00402b70
or esi, 0x800000
lea ecx, [ebp - 0x1f8]
mov edx, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
call fcn.00491390
mov byte [ebp - 0x11], 1
test al, al
jne 0x460ae3
mov byte [ebp - 0x11], 0
mov eax, dword [ebp - 0x18]
test eax, 0x800000
je 0x460b06
and eax, 0xff7fffff
lea ecx, [ebp - 0x684]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x400000
je 0x460b26
and eax, 0xffbfffff
lea ecx, [ebp - 0x464]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x200000
je 0x460b46
and eax, 0xffdfffff
lea ecx, [ebp - 0x654]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x100000
je 0x460b66
and eax, 0xffefffff
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x80000
je 0x460b86
and eax, 0xfff7ffff
lea ecx, [ebp - 0x66c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x40000
je 0x460ba6
and eax, 0xfffbffff
lea ecx, [ebp - 0x250]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x20000
je 0x460bc6
and eax, 0xfffdffff
lea ecx, [ebp - 0x5dc]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x10000
je 0x460be3
and eax, 0xfffeffff
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x8000
je 0x460c03
and eax, 0xffff7fff
lea ecx, [ebp - 0x5f4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x4000
je 0x460c23
and eax, 0xffffbfff
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x2000
je 0x460c43
and eax, 0xffffdfff
lea ecx, [ebp - 0x60c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x1000
je 0x460c63
and eax, 0xffffefff
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x800
je 0x460c83
and eax, 0xfffff7ff
lea ecx, [ebp - 0x624]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x400
je 0x460ca3
and eax, 0xfffffbff
lea ecx, [ebp - 0x594]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x200
je 0x460cc3
and eax, 0xfffffdff
lea ecx, [ebp - 0x63c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test eax, 0x100
je 0x460ce3
and eax, 0xfffffeff
lea ecx, [ebp - 0x5ac]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, al
jns 0x460d00
and eax, 0xffffff7f
lea ecx, [ebp - 0x504]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 0x40
je 0x460d1b
and eax, 0xffffffbf
lea ecx, [ebp - 0x5c4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 0x20
je 0x460d36
and eax, 0xffffffdf
lea ecx, [ebp - 0x51c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 0x10
je 0x460d51
and eax, 0xffffffef
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 8
je 0x460d6c
and eax, 0xfffffff7
lea ecx, [ebp - 0x534]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 4
je 0x460d87
and eax, 0xfffffffb
lea ecx, [ebp - 0x494]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
test al, 2
je 0x460da2
and eax, 0xfffffffd
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
mov eax, dword [ebp - 0x18]
mov dword [ebp - 4], 0x4f
test al, 1
je 0x460dc1
and eax, 0xfffffffe
lea ecx, [ebp - 0x404]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
call fcn.00402ad0
cmp byte [ebp - 0x11], 0
je 0x460e61
xorps xmm0, xmm0
mov word [ebp - 0x172], 0xc8ca
mov byte [ebp - 0x170], 0xd4
xor ecx, ecx
movups xmmword [ebp - 0x16f], xmm0
mov dword [ebp - 0x15f], 0
mov word [ebp - 0x15b], 0
mov byte [ebp - 0x159], 0
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x172], al
inc ecx
cmp ecx, 3
jb 0x460e01
lea eax, [ebp - 0x172]
mov dword [0x565590], ecx
push eax
lea ecx, [ebp - 0x404]
mov byte [ebp - 0x16f], 0
call fcn.00402b70
or edi, 0x2000000
lea ecx, [ebp - 0x404]
mov byte [ebp - 4], 0x67
call fcn.00402c10
push eax
lea ecx, [ebp - 0x1f8]
call fcn.0048cae0
lea ecx, [ebp - 0x404]
mov byte [ebp - 4], 0x4f
call fcn.00402ad0
xorps xmm0, xmm0
mov byte [ebp - 0x78], 0x81
movups xmmword [ebp - 0x77], xmm0
mov dword [ebp - 0x67], 0
xor ecx, ecx
mov word [ebp - 0x63], 0
mov byte [ebp - 0x61], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x78], al
inc ecx
cmp ecx, 1
jb 0x460e80
lea eax, [ebp - 0x78]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x494]
mov byte [ebp - 0x77], 0
call fcn.00402b70
or edi, 0x8000
mov dword [ebp - 0x24], edi
lea ecx, [ebp - 0x494]
mov byte [ebp - 4], 0x68
call fcn.00402c10
mov edx, 0x14
lea ecx, [ebp - 0x504]
mov esi, eax
call fcn.0040e850
mov edi, eax
mov byte [ebp - 4], 0x69
xorps xmm0, xmm0
mov byte [ebp - 0x94], 0xf3
xor ecx, ecx
movups xmmword [ebp - 0x93], xmm0
mov dword [ebp - 0x83], 0
mov word [ebp - 0x7f], 0
mov byte [ebp - 0x7d], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x94], al
inc ecx
cmp ecx, 1
jb 0x460f00
lea eax, [ebp - 0x94]
mov dword [0x565620], ecx
push eax
lea ecx, [ebp - 0x404]
mov byte [ebp - 0x93], 0
call fcn.00402b70
or dword [ebp - 0x24], 0x10000
lea ecx, [ebp - 0x404]
mov byte [ebp - 4], 0x6a
call fcn.00402c10
push eax
lea edx, [ebx + 0x80]
lea ecx, [ebp - 0x51c]
call fcn.004909d0
add esp, 4
push edi
mov edx, eax
mov byte [ebp - 4], 0x6b
lea ecx, [ebp - 0x534]
call fcn.00490c50
add esp, 4
push esi
mov edx, eax
mov byte [ebp - 4], 0x6c
lea ecx, [ebp - 0xb0]
call fcn.00490a30
add esp, 4
lea ecx, [ebp - 0x1f8]
mov byte [ebp - 4], 0x6d
push ecx
mov edx, eax
lea ecx, [ebp - 0x54c]
call fcn.00490bf0
add esp, 4
lea ecx, [ebp - 0xb0]
call fcn.00402ad0
lea ecx, [ebp - 0x534]
call fcn.00402ad0
lea ecx, [ebp - 0x51c]
call fcn.00402ad0
lea ecx, [ebp - 0x404]
call fcn.00402ad0
lea ecx, [ebp - 0x504]
call fcn.00402ad0
lea ecx, [ebp - 0x494]
mov byte [ebp - 4], 0x74
call fcn.00402ad0
xorps xmm0, xmm0
mov dword [ebp - 0x53], 0xc2c5c4c7
mov dword [ebp - 0x4f], 0x999a8ec0
xor ecx, ecx
movups xmmword [ebp - 0x4b], xmm0
mov dword [ebp - 0x3b], 0
mov word [ebp - 0x37], 0
mov byte [ebp - 0x35], 0
nop
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 8
jb 0x461010
lea eax, [ebp - 0x53]
mov dword [0x565624], ecx
push eax
lea ecx, [ebp - 0x3ec]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
mov edi, dword [ebp - 0x24]
lea ecx, [ebp - 0x3ec]
or edi, 0x20000
mov dword [ebp - 0x24], edi
call fcn.00402c10
lea ecx, [ebp - 0x41c]
mov esi, eax
call fcn.00402c10
push esi
push eax
call fcn.00506580
add esp, 8
lea ecx, [ebp - 0x3ec]
test eax, eax
setne byte [ebp - 0x1e0]
call fcn.00402ad0
lea ecx, [ebp - 0x54c]
call fcn.00402c10
lea ecx, [ebp - 0x41c]
mov esi, eax
call fcn.00402c10
sub esp, 8
mov edx, esi
mov ecx, eax
push dword [ebp - 0x1e0]
call fcn.004a8290
add esp, 0xc
test al, al
je 0x46114f
lea ecx, [ebp - 0x54c]
call fcn.00402c10
xorps xmm0, xmm0
mov dword [ebp - 0x4f], 0xdcd4c0c0
mov esi, eax
mov dword [ebp - 0x3b], 0
movups xmmword [ebp - 0x4b], xmm0
mov word [ebp - 0x37], 0
xor ecx, ecx
mov byte [ebp - 0x35], 0
nop dword [eax]
mov al, cl
sub al, 0x51
xor byte [ebp + ecx - 0x4f], al
inc ecx
cmp ecx, 4
jb 0x4610e0
lea eax, [ebp - 0x4f]
mov dword [0x5655d8], ecx
push eax
lea ecx, [ebp - 0x3ec]
mov byte [ebp - 0x4b], 0
call fcn.00402b70
or edi, 0x400000
lea ecx, [ebp - 0x3ec]
mov dword [ebp - 0x24], edi
call fcn.00402c10
push 1
push 0
push 0
push esi
push eax
push 0
call dword [0x5382e0]
lea ecx, [ebp - 0x3ec]
call fcn.00402ad0
sub esp, 0x18
lea eax, [ebp - 0x564]
mov ecx, esp
push eax
call fcn.0048ccc0
call fcn.00428a20
add esp, 0x18
lea ecx, [ebp - 0x54c]
call fcn.00402ad0
lea ecx, [ebp - 0x3d4]
call fcn.0048eeb0
lea ecx, [ebp - 0x1f8]
call fcn.00402ad0
lea ecx, [ebp - 0x280]
call fcn.0048eeb0
lea ecx, [ebp - 0x3c8]
call fcn.0048eeb0
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x408]
cmp ecx, 0x10
jb 0x4611c4
mov edx, dword [ebp - 0x41c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4611ba
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x260]
mov dword [ebp - 0x40c], 0
mov dword [ebp - 0x408], 0xf
mov byte [ebp - 0x41c], 0
cmp ecx, 0x10
jb 0x46121d
mov edx, dword [ebp - 0x274]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x461213
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x434]
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0xf
mov byte [ebp - 0x274], 0
cmp ecx, 0x10
jb 0x461276
mov edx, dword [ebp - 0x448]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x46126c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x550]
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x434], 0xf
mov byte [ebp - 0x448], 0
cmp ecx, 0x10
jb 0x4612cf
mov edx, dword [ebp - 0x564]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4612c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x461382
push ecx
push edx
call fcn.00504f31
add esp, 8
mov eax, dword [ebp - 0x238]
movzx eax, byte [eax]
sub eax, 1
je 0x4612f3
sub eax, 1
je 0x4612ea
inc dword [ebp - 0x22c]
jmp 0x46130d
add dword [ebp - 0x230], 0x10
jmp 0x46130d
mov eax, dword [ebp - 0x234]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x28], eax
call fcn.0048e170
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x4cc]
push eax
lea ecx, [ebp - 0x238]
call fcn.00489ed0
test al, al
jne 0x45d6e0
lea ecx, [ebx + 8]
call fcn.00402ad0
lea ecx, [ebx + 0x20]
call fcn.0048a7b0
lea ecx, [ebx + 0x30]
call fcn.0048a7b0
lea ecx, [ebx + 0x40]
call fcn.0048a7b0
lea ecx, [ebx + 0x50]
call fcn.0048a7b0
lea ecx, [ebx + 0x60]
call fcn.0048a7b0
lea ecx, [ebx + 0x70]
call fcn.0048a7b0
lea ecx, [ebx + 0x80]
call fcn.00402ad0
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.004024b0
call fcn.0050a1d0
int3