Function at 0x5299f0
Capabilities:
Encode data using base64

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 0x5d71a3
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x3038
call fcn.0041f1c0
mov eax, dword [0x6dd1e4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x2f90], esi
mov edi, dword [ebx + 8]
xor ecx, ecx
call fcn.00515710
test eax, eax
je 0x529a54
push eax
call fcn.0041e896
add esp, 4
mov eax, dword [edi + 0xc]
xorps xmm0, xmm0
mov ecx, dword [edi + 8]
mov dword [ebp - 0x2fb4], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x2fdc], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x2fac], eax
mov eax, dword [edi + 0x18]
push 1
mov dword [ebp - 0x2fb0], ecx
mov dword [ebp - 0x2f80], eax
mov eax, dword [edi + 0x1c]
push ecx
lea ecx, [ebp - 0x2124]
mov dword [ebp - 0x2ff8], eax
movq qword [ebp - 0x2124], xmm0
mov dword [ebp - 0x211c], 0
call fcn.0051e110
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1fa0]
xorps xmm0, xmm0
mov dword [ebp - 0x1f98], 0
movq qword [ebp - 0x1fa0], xmm0
call fcn.0051e180
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1fb0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fa8], 0
movq qword [ebp - 0x1fb0], xmm0
call fcn.0051e180
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1f94]
xorps xmm0, xmm0
mov dword [ebp - 0x1f8c], 0
movq qword [ebp - 0x1f94], xmm0
call fcn.0051e180
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2024]
xorps xmm0, xmm0
mov dword [ebp - 0x201c], 0
movq qword [ebp - 0x2024], xmm0
call fcn.0051e180
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1ff0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fe8], 0
movq qword [ebp - 0x1ff0], xmm0
call fcn.0051e180
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1fc0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fb8], 0
movq qword [ebp - 0x1fc0], xmm0
call fcn.0051e180
lea ecx, [ebp - 0x2124]
mov byte [ebp - 4], 6
call fcn.0051df40
mov ecx, eax
cmp ecx, 7
jl 0x529bba
mov eax, dword [ebp - 0x2fb0]
add eax, 0xfffffff8
push 0
lea edx, [eax + ecx*2]
mov ecx, 0x60f904
call fcn.0051a8a0
test eax, eax
je 0x529be0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60f904
lea ecx, [ebp - 0x2124]
call fcn.0051c4c0
xorps xmm0, xmm0
lea ecx, [ebp - 0x2124]
push 0
push 0x2a
movups xmmword [ebp - 0x2010], xmm0
movups xmmword [ebp - 0x2000], xmm0
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050c8c0
lea ecx, [ebp - 0x2010]
mov byte [ebp - 4], 7
call fcn.0050c7b0
test eax, eax
jne 0x529c2a
mov byte [ebp - 0x2f61], al
jmp 0x52b3e6
lea eax, [esi + 0x14e0]
push 0x652590
push 0
mov ecx, eax
mov dword [ebp - 0x2fa4], eax
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6525c8
lea ecx, [esi + 0x1408]
call fcn.0051dd30
push eax
push 0x65260c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov ecx, esi
call fcn.0044b2a0
test al, al
je 0x529e47
push 0
push 0x652640
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
xorps xmm0, xmm0
mov dword [ebp - 0x2168], 0
lea ecx, [ebp - 0x2170]
movq qword [ebp - 0x2170], xmm0
call fcn.0051e180
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x20e8]
xorps xmm0, xmm0
mov dword [ebp - 0x20e0], 0
movq qword [ebp - 0x20e8], xmm0
call fcn.0051e180
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x20dc]
xorps xmm0, xmm0
mov dword [ebp - 0x20d4], 0
movq qword [ebp - 0x20dc], xmm0
call fcn.0051e180
push 0
push 0
push 0x9470
lea ecx, [ebp - 0x2170]
mov byte [ebp - 4], 0xa
call fcn.0051d530
lea ecx, [esi + 0x190]
mov dword [ebp - 0x2e5c], eax
call fcn.0051dd30
push eax
push 0x9470
push dword [ebp - 0x2e5c]
push 0x646f28
call dword [0x5de488]
mov ecx, dword [ebp - 0x2e5c]
lea eax, [ebp - 0x20dc]
push eax
lea edx, [ebp - 0x20e8]
call fcn.00501700
test al, al
je 0x529e10
nop dword [eax]
nop word [eax + eax]
push 0x646fd0
lea ecx, [ebp - 0x20e8]
call fcn.0051e060
test al, al
je 0x529da1
mov dl, 1
lea ecx, [ebp - 0x20dc]
call fcn.00511a70
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x20dc]
call fcn.0051dd30
push eax
push 0x640994
lea ecx, [ebp - 0x20e8]
call fcn.0051dd30
push eax
push 0x65266c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea eax, [ebp - 0x20dc]
push eax
lea edx, [ebp - 0x20e8]
lea ecx, [ebp - 0x2e5c]
call fcn.00501770
test al, al
jne 0x529d80
push 0
push 0x60477c
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x20dc]
call fcn.0051dfd0
lea ecx, [ebp - 0x20e8]
call fcn.0051dfd0
lea ecx, [ebp - 0x2170]
mov byte [ebp - 4], 7
call fcn.0051dfd0
add edi, 4
mov dword [ebp - 0x2fa0], edi
cmp byte [edi], 0
je 0x529e61
mov byte [ebp - 0x2f61], 2
jmp 0x52b3e6
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x2044], 0
push 0x1a
lea ecx, [ebp - 0x204c]
movq qword [ebp - 0x204c], xmm0
call fcn.00404350
mov byte [ebp - 4], 0xb
mov ecx, 1
mov eax, dword [ebp - 0x204c]
test eax, eax
mov dword [ebp - 0x2f74], 1
cmove eax, ecx
mov ecx, dword [ebp - 0x2044]
mov dword [ebp - 0x204c], eax
lea eax, [esi + 0x1c]
push dword [eax]
mov dword [ebp - 0x2fb0], eax
call fcn.0051e0b0
push 0
push 0
push 0x800
lea ecx, [ebp - 0x1fb0]
call fcn.0051d530
push eax
push 0x800
call dword [0x5de3cc]
test eax, eax
je 0x52a0eb
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x1fb0]
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x28], xmm0
call fcn.0051dd30
mov dword [ebp - 0x2f6c], eax
cmp word [eax], 0
je 0x52a0d9
mov dword [ebp - 0x2f94], 0xc
mov esi, 1
mov edi, eax
push edi
call dword [0x5de3e0]
cmp eax, 3
jne 0x52a09c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
push edi
call dword [0x5de420]
cmp dword [ebp - 0x204c], esi
ja 0x529f5c
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f94]
add ecx, dword [ebp - 0x2044]
push 1
push edi
call fcn.0051de00
cmp dword [ebp - 0x204c], esi
ja 0x529f81
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f94]
add ecx, dword [ebp - 0x2044]
push 1
call fcn.0051cac0
cmp dword [ebp - 0x204c], esi
ja 0x529fa5
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov eax, dword [ebp - 0x2fb0]
mov ecx, dword [ebp - 0x2f94]
add ecx, dword [ebp - 0x2044]
push dword [eax]
call fcn.0051e060
test al, al
jne 0x52a09c
push 4
push 0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x20]
call fcn.0051cba0
cmp dword [ebp - 0x204c], esi
ja 0x529fec
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov esi, dword [ebp - 0x2f94]
lea ecx, [ebp - 0x2024]
add esi, dword [ebp - 0x2044]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.0051dd30
push eax
push 0x5ff600
mov ecx, esi
call fcn.0051dd30
push eax
push 0x65267c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 4
push 0
push dword [ebp - 0x24]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x28]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x640f04
lea ecx, [ebp - 0x1fa0]
call fcn.0051c4c0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov esi, dword [ebp - 0x2f74]
inc esi
add dword [ebp - 0x2f94], 0xc
mov dword [ebp - 0x2f74], esi
mov eax, dword [ebp - 0x204c]
cmp eax, esi
ja 0x52a0b6
push 0
add eax, eax
lea ecx, [ebp - 0x204c]
push eax
call fcn.00404190
mov ecx, edi
call fcn.0051aa10
lea edi, [edi + eax*2]
add edi, 2
cmp word [edi], 0
jne 0x529f28
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
push 0
push 0x60477c
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
cmp byte [edi], 0
je 0x52a0fc
mov byte [ebp - 0x2f61], 2
jmp 0x52b3db
xor ecx, ecx
call fcn.00490680
push 0x38
lea eax, [ebp - 0x21f0]
push 0
push eax
call fcn.00420580
add esp, 0xc
lea ecx, [ebp - 0x21f0]
push 1
push 0x61f3a4
call fcn.0048d2f0
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2010]
cmp byte [ebp - 0x21c0], 0
push 0
je 0x52a52c
push 0x6526a0
call fcn.0050b8e0
push 0x6526d0
lea ecx, [ebp - 0x21f0]
call fcn.0048d130
test eax, eax
je 0x52a26b
lea ecx, [ebp - 0x21f0]
call fcn.0048d020
test eax, eax
je 0x52a26b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60af70
lea ecx, [ebp - 0x21f0]
call fcn.0048ce00
push eax
push 0x65272c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x652750
lea ecx, [ebp - 0x21f0]
call fcn.0048ce00
push eax
push 0x652768
lea ecx, [ebp - 0x1fa0]
call fcn.0051c4c0
push dword [esi + 0xd0]
call dword [0x5dea94]
lea eax, [ebp - 0x2f60]
push eax
push 0
push 0x200
push dword [esi + 0xd4]
call dword [0x5dea98]
movsd xmm1, qword [ebp - 0x2f58]
lea ecx, [ebp - 0x1fb0]
push 2
call fcn.0051d210
mov ecx, eax
call fcn.0051b900
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x652794
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6527a0
lea ecx, [ebp - 0x1fa0]
call fcn.0051c4c0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0x6527e0
lea ecx, [ebp - 0x21f0]
call fcn.0048d130
test eax, eax
je 0x52a536
lea ecx, [ebp - 0x21f0]
call fcn.0048d020
test eax, eax
je 0x52a536
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x652910
lea ecx, [ebp - 0x21f0]
call fcn.0048ce00
push eax
push 0x65292c
lea ecx, [esi + 0x220]
call fcn.0051dd30
push eax
push 0x65295c
lea ecx, [esi + 0x1fc]
call fcn.0051dd30
push eax
push 0x652988
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 4
push 0
push 0x6529b8
lea ecx, [ebp - 0x21f0]
call fcn.0048cdc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6529e8
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 4
push 0
push 0x652a2c
lea ecx, [ebp - 0x21f0]
call fcn.0048cdc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe508
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x652a54
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 4
push 0
push 0x652a6c
lea ecx, [ebp - 0x21f0]
call fcn.0048cdc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x652aa0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 4
push 0
push 0x652ae4
lea ecx, [ebp - 0x21f0]
call fcn.0048cdc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe508
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x652a54
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 1
push 0
push 0x652b08
lea ecx, [ebp - 0x21f0]
call fcn.0048ce00
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051de00
mov edx, 0x13
lea ecx, [ebp - 0x1fb0]
call fcn.0048fd70
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x652b28
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0x43
call dword [0x5de7f8]
lea ecx, [ebp - 0x2010]
push 0
cmp eax, 1
jne 0x52a519
push 0x652b60
jmp 0x52a531
cmp eax, 2
jne 0x52a525
push 0x652bb0
jmp 0x52a531
push 0x652c10
jmp 0x52a531
push 0x652c50
call fcn.0050b8e0
cmp byte [edi], 0
je 0x52a547
mov byte [ebp - 0x2f61], 2
jmp 0x52b3d0
push 0
push 0x20019
push 0x63b570
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x1fa4], 0
call fcn.00518860
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1fb4]
mov dword [ebp - 0x1fb4], 0
call fcn.00518880
lea eax, [ebp - 0x1fb0]
mov byte [ebp - 4], 0xe
push eax
push 0x63b55c
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x652c8c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0x652cc0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f80]
push 0
test al, 4
je 0x52a606
push 0x652cf0
jmp 0x52a621
test al, 1
je 0x52a611
push 0x652d40
jmp 0x52a621
test al, 2
je 0x52a61c
push 0x652d80
jmp 0x52a621
push 0x652dc0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
test byte [ebp - 0x2f80], 0xc
lea ecx, [ebp - 0x2010]
push 0
je 0x52a644
push 0x652df0
jmp 0x52a649
push 0x652e20
call fcn.0050b8e0
push 0
push 0x652e60
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f80]
mov ecx, eax
and ecx, 0x40
mov dword [ebp - 0x2f88], ecx
je 0x52a68b
push 0
push 0x652e90
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f80]
and eax, 0x10
lea ecx, [ebp - 0x2010]
mov dword [ebp - 0x2f6c], eax
push 0
je 0x52a6a5
push 0x652ec0
jmp 0x52a6aa
push 0x652ef0
call fcn.0050b8e0
test byte [ebp - 0x2f80], 0x20
lea ecx, [ebp - 0x2010]
push 0
je 0x52a6c7
push 0x652f30
jmp 0x52a6cc
push 0x652f70
call fcn.0050b8e0
push 0
push 0x652fc0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
test byte [ebp - 0x2f80], 8
mov ecx, 0x653084
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, 0x653060
mov edx, 0x5fe50c
cmove eax, ecx
mov ecx, 0x6530a0
cmp dword [ebp - 0x2f6c], 0
push 0x60477c
cmove ecx, edx
mov dword [ebp - 0x2fa8], eax
push eax
push ecx
push 0x6530b8
mov dword [ebp - 0x2f94], ecx
lea ecx, [ebp - 0x1fa0]
push 0x653128
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
je 0x52a764
mov byte [ebp - 0x2f61], 2
jmp 0x52b3ba
xorps xmm0, xmm0
mov dword [ebp - 0x1fc4], 0
lea ecx, [ebp - 0x1fcc]
movq qword [ebp - 0x1fcc], xmm0
call fcn.0051e180
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1fd8]
xorps xmm0, xmm0
mov dword [ebp - 0x1fd0], 0
movq qword [ebp - 0x1fd8], xmm0
call fcn.0051e180
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1fe4]
xorps xmm0, xmm0
mov dword [ebp - 0x1fdc], 0
movq qword [ebp - 0x1fe4], xmm0
call fcn.0051e180
cmp dword [ebp - 0x2f74], 0
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x2f68], 0
jbe 0x52aa10
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x2f78], ecx
cmp dword [ebp - 0x204c], edi
ja 0x52a802
lea eax, [edi + 1]
mov dword [ebp - 0x204c], eax
add ecx, dword [ebp - 0x2044]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6531a8
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051dda0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
call dword [0x5de620]
test eax, eax
je 0x52a9e4
push 0x800
push 0
push str.Open
push 0x6531c4
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051ce70
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
jne 0x52a9e4
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52a8fe
push 2
push 2
push 1
push 1
push 0x5ff7bc
lea ecx, [ebp - 0x1f94]
call fcn.0051c760
test eax, eax
jne 0x52a8fe
cmp dword [ebp - 0x204c], edi
ja 0x52a8c8
lea eax, [edi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f78]
add ecx, dword [ebp - 0x2044]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
call dword [0x5de620]
test eax, eax
jne 0x52a92f
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52a9e4
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6531d4
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f68]
inc eax
mov dword [ebp - 0x2f68], eax
jmp 0x52a9ea
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f78]
inc edi
add ecx, 0xc
mov dword [ebp - 0x2f78], ecx
cmp edi, dword [ebp - 0x2f74]
jb 0x52a7f1
mov edi, dword [ebp - 0x2fa0]
test eax, eax
jne 0x52aa22
push 0
push 0x653200
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
push 0
push 0x653270
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
cmp byte [edi], 0
jne 0x52b392
mov dword [ebp - 0x2fd4], str..exe
xor esi, esi
mov dword [ebp - 0x2fd0], str..msi
mov dword [ebp - 0x2fcc], str..reg
mov dword [ebp - 0x2fc8], str..bat
mov dword [ebp - 0x2fc4], str..cmd
mov dword [ebp - 0x2fc0], str..com
mov dword [ebp - 0x2fbc], str..vbs
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp + esi*4 - 0x2fd4]
lea ecx, [ebp - 0x1ff0]
push str.HKCR_
call fcn.0051dda0
lea eax, [ebp - 0x1fb0]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
lea ecx, [ebp - 0x1fb0]
call fcn.0051da30
test al, al
je 0x52aaf2
push 0x623a20
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x623a60
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push str.HKCR_
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52ab67
push 0x623a40
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp + esi*4 - 0x2fd4]
lea ecx, [ebp - 0x1fa0]
push 0x65331c
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
inc esi
cmp esi, 7
jl 0x52aa85
push 0
push 0x653350
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov edx, dword [ebp - 0x2fac]
mov esi, dword [ebp - 0x2f90]
mov dword [ebp - 0x2f70], 0
mov dword [ebp - 0x2f9c], 0x64
test edx, edx
je 0x52ac72
mov eax, edx
and eax, 1
test dl, 2
lea ecx, [eax + 1]
cmove ecx, eax
test dl, 4
lea eax, [ecx + 1]
cmove eax, ecx
test dl, 8
lea ecx, [eax + 1]
cmove ecx, eax
test dl, 0x10
lea eax, [ecx + 1]
cmove eax, ecx
test dl, 0x20
lea ecx, [eax + 1]
cmove ecx, eax
test dl, 0x40
lea eax, [ecx + 1]
cmove eax, ecx
test dl, 0x80
lea ecx, [eax + 1]
cmove ecx, eax
test edx, 0x100
lea eax, [ecx + 1]
cmove eax, ecx
mov dword [ebp - 0x2f6c], eax
cmp eax, 1
jbe 0x52ac72
xor edx, edx
mov eax, 0x64
div dword [ebp - 0x2f6c]
mov edx, dword [ebp - 0x2fac]
mov dword [ebp - 0x2f9c], eax
test dl, 1
je 0x52b29b
push 0x653400
push 0
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x52b392
lea eax, [ebp - 0x2034]
mov dword [ebp - 0x2034], 0
push eax
push 0x1f40
lea eax, [ebp - 0x1f88]
push eax
call dword [0x5de57c]
test eax, eax
je 0x52ae9f
mov eax, dword [ebp - 0x2034]
lea ecx, [ebp - 0x2024]
shr eax, 2
push eax
mov dword [ebp - 0x2034], eax
call fcn.0051cf20
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f94]
push 0x653440
call fcn.0051dd30
push eax
push 0x6534bc
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0
push 0x800
lea ecx, [ebp - 0x1f94]
call fcn.0051d530
cmp dword [ebp - 0x2034], 0
mov dword [ebp - 0x2f68], 0
jbe 0x52ae7a
cmp byte [edi], 0
jne 0x52b392
lea ecx, [ebp - 0x1f94]
call fcn.0051df20
push 0x800
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov edx, eax
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp + eax*4 - 0x1f88]
call fcn.00504ff0
test al, al
je 0x52ae61
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52ae61
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x6534f0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f9c]
lea ecx, [esi + 0x14e0]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
imul eax, dword [ebp - 0x2f68]
push 0
div dword [ebp - 0x2034]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52b392
mov eax, dword [ebp - 0x2f68]
inc eax
mov dword [ebp - 0x2f68], eax
cmp eax, dword [ebp - 0x2034]
jb 0x52ad57
push 0
push 0x653520
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f9c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x2f70], eax
jmp 0x52aea1
xor eax, eax
cmp dword [ebp - 0x2034], 0
je 0x52b281
mov ecx, dword [ebp - 0x2fa4]
push 0x6535cc
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52b392
xor esi, esi
mov dword [ebp - 0x2f7c], 0x7d0
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x2f84], esi
push 0x7d0
lea ecx, [ebp - 0x2064]
movq qword [ebp - 0x2064], xmm0
mov dword [ebp - 0x205c], esi
call fcn.00404350
mov dword [ebp - 0x2e3c], 0xffffffff
xor ecx, ecx
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x2e20], 0x428
mov dword [ebp - 0x2f98], ecx
cmp dword [ebp - 0x2034], ecx
jbe 0x52b0a8
nop dword [eax + eax]
cmp byte [edi], 0
jne 0x52b376
push dword [ebp + ecx*4 - 0x1f88]
push 0x18
call dword [0x5de450]
push eax
lea ecx, [ebp - 0x2e3c]
call fcn.00401620
mov eax, dword [ebp - 0x2e3c]
cmp eax, 0xffffffff
je 0x52b08f
test eax, eax
je 0x52b08f
lea ecx, [ebp - 0x2e20]
push ecx
push eax
call dword [0x5de370]
test eax, eax
je 0x52b08f
lea eax, [ebp - 0x2e20]
push eax
push dword [ebp - 0x2e3c]
call dword [0x5de330]
test eax, eax
je 0x52b08f
mov edi, dword [ebp - 0x2f7c]
lea ecx, [esi + esi*2]
shl ecx, 2
mov dword [ebp - 0x2f68], ecx
nop
test esi, esi
je 0x52b011
xor esi, esi
cmp dword [ebp - 0x2f84], esi
jbe 0x52b00b
xor ecx, ecx
mov dword [ebp - 0x2f7c], ecx
cmp dword [ebp - 0x2064], esi
ja 0x52afd7
lea eax, [esi + 1]
mov dword [ebp - 0x2064], eax
add ecx, dword [ebp - 0x205c]
lea eax, [ebp - 0x2c00]
push eax
call fcn.0051e060
test al, al
jne 0x52b05c
mov ecx, dword [ebp - 0x2f7c]
inc esi
add ecx, 0xc
mov dword [ebp - 0x2f7c], ecx
cmp esi, dword [ebp - 0x2f84]
jb 0x52afc6
mov ecx, dword [ebp - 0x2f68]
mov esi, dword [ebp - 0x2f84]
cmp dword [ebp - 0x2064], esi
ja 0x52b022
lea eax, [esi + 1]
mov dword [ebp - 0x2064], eax
add ecx, dword [ebp - 0x205c]
lea eax, [ebp - 0x2c00]
push eax
call fcn.0051e0b0
add dword [ebp - 0x2f68], 0xc
inc esi
mov dword [ebp - 0x2f84], esi
cmp esi, edi
jb 0x52b062
add edi, 0x3e8
lea ecx, [ebp - 0x2064]
push 0
push edi
call fcn.00404190
jmp 0x52b062
mov esi, dword [ebp - 0x2f84]
lea eax, [ebp - 0x2e20]
push eax
push dword [ebp - 0x2e3c]
call dword [0x5de330]
mov ecx, dword [ebp - 0x2f68]
test eax, eax
jne 0x52afb0
mov dword [ebp - 0x2f7c], edi
mov edi, dword [ebp - 0x2fa0]
mov ecx, dword [ebp - 0x2f98]
inc ecx
mov dword [ebp - 0x2f98], ecx
cmp ecx, dword [ebp - 0x2034]
jb 0x52af30
push esi
lea ecx, [ebp - 0x2024]
call fcn.0051cfb0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f94]
push 0x653608
call fcn.0051dd30
push eax
push 0x65367c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
xor eax, eax
mov dword [ebp - 0x2f68], eax
test esi, esi
je 0x52b24f
xor ecx, ecx
mov dword [ebp - 0x2f78], ecx
nop dword [eax]
cmp byte [edi], 0
jne 0x52b376
cmp dword [ebp - 0x2064], eax
ja 0x52b138
inc eax
mov dword [ebp - 0x2064], eax
add ecx, dword [ebp - 0x205c]
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
call fcn.0051dd30
mov ecx, dword [ebp - 0x2f90]
push eax
call fcn.005297d0
test al, al
je 0x52b22b
mov eax, dword [ebp - 0x2f68]
cmp dword [ebp - 0x2064], eax
ja 0x52b187
inc eax
mov dword [ebp - 0x2064], eax
mov esi, dword [ebp - 0x2f78]
lea ecx, [ebp - 0x1fe4]
add esi, dword [ebp - 0x205c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.0051dd30
push eax
push 0x6536ac
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f9c]
mov esi, dword [ebp - 0x2f84]
cdq
sub eax, edx
mov ecx, dword [ebp - 0x2fa4]
sar eax, 1
xor edx, edx
imul eax, dword [ebp - 0x2f68]
push 0
div esi
add eax, dword [ebp - 0x2f70]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52b376
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f78]
inc eax
add ecx, 0xc
mov dword [ebp - 0x2f68], eax
mov dword [ebp - 0x2f78], ecx
cmp eax, esi
jb 0x52b120
push 0
push 0x6536e0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x2e3c]
call fcn.00401600
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x205c]
test ecx, ecx
je 0x52b281
push 3
call fcn.00401ff0
mov eax, dword [ebp - 0x2f9c]
mov ecx, dword [ebp - 0x2fa4]
push 0
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
xorps xmm0, xmm0
movlpd qword [ebp - 0x2030], xmm0
mov dword [ebp - 0x2030], 0
movlpd qword [ebp - 0x2058], xmm0
mov dword [ebp - 0x2058], 0
movlpd qword [ebp - 0x2084], xmm0
mov dword [ebp - 0x2084], 0
cmp dword [ebp - 0x2f88], 0
mov byte [ebp - 4], 0x16
je 0x52b310
push 0
lea eax, [ebp - 0x2030]
push eax
lea edx, [ebp - 0x2084]
lea ecx, [ebp - 0x2058]
call fcn.004d5ca0
mov dword [ebp - 0x2f8c], eax
test eax, eax
jne 0x52b464
and dword [ebp - 0x2f80], 0xffffffbf
mov esi, dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2030]
mov dword [ebp - 0x2f8c], 1
lea eax, [esi + 0x220]
push eax
push 1
call fcn.004037f0
mov ecx, eax
call fcn.0051e080
lea eax, [esi + 0x22c]
push eax
push 1
lea ecx, [ebp - 0x2058]
call fcn.004037f0
mov ecx, eax
call fcn.0051e080
lea eax, [esi + 0x238]
push eax
push 1
lea ecx, [ebp - 0x2084]
call fcn.004037f0
mov ecx, eax
call fcn.0051e080
jmp 0x52b46a
lea ecx, [ebp - 0x2e3c]
call fcn.00401600
mov ecx, dword [ebp - 0x205c]
test ecx, ecx
je 0x52b392
push 3
call fcn.00401ff0
mov byte [ebp - 0x2f61], 2
lea ecx, [ebp - 0x1fe4]
call fcn.0051dfd0
lea ecx, [ebp - 0x1fd8]
call fcn.0051dfd0
lea ecx, [ebp - 0x1fcc]
call fcn.0051dfd0
lea ecx, [ebp - 0x1fb4]
call fcn.005187c0
lea ecx, [ebp - 0x1fa4]
call fcn.005187c0
lea ecx, [ebp - 0x21f0]
call fcn.0048d370
lea ecx, [ebp - 0x204c]
call fcn.004042e0
lea ecx, [ebp - 0x2010]
call fcn.00401f90
lea ecx, [ebp - 0x1fc0]
call fcn.0051dfd0
lea ecx, [ebp - 0x1ff0]
call fcn.0051dfd0
lea ecx, [ebp - 0x2024]
call fcn.0051dfd0
lea ecx, [ebp - 0x1f94]
call fcn.0051dfd0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dfd0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dfd0
lea ecx, [ebp - 0x2124]
call fcn.0051dfd0
mov al, byte [ebp - 0x2f61]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0041e885
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
mov esi, dword [ebp - 0x2f90]
xor eax, eax
lea ecx, [ebp - 0x2018]
cmp byte [esi + 0x28], al
xorps xmm0, xmm0
movlpd qword [ebp - 0x2018], xmm0
setne al
inc eax
add eax, dword [ebp - 0x2f8c]
mov dword [ebp - 0x2f84], eax
inc eax
push eax
call fcn.00403990
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2e2c]
xorps xmm0, xmm0
mov dword [ebp - 0x2e24], 0
movq qword [ebp - 0x2e2c], xmm0
call fcn.005188a0
test byte [ebp - 0x2fac], 2
mov byte [ebp - 4], 0x18
je 0x52c518
push 0x653784
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x52c79b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x6537c0
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
xorps xmm0, xmm0
lea ecx, [ebp - 0x21a0]
movups xmmword [ebp - 0x21a0], xmm0
movq qword [ebp - 0x2190], xmm0
call fcn.0051b0f0
mov eax, dword [ebp - 0x2f8c]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x52b5b9
xor edi, edi
mov dword [ebp - 0x2f7c], eax
mov ecx, dword [ebp - 0x2058]
mov esi, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [edi + ecx]
add esi, edi
push 0x61af08
call fcn.0051dd30
push eax
push str.HKU_
mov ecx, esi
call fcn.0051dda0
add edi, 0xc
sub dword [ebp - 0x2f7c], 1
jne 0x52b561
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov eax, dword [ebp - 0x2f8c]
lea ecx, [eax + eax*2]
shl ecx, 2
mov dword [ebp - 0x2f78], ecx
add ecx, dword [ebp - 0x2018]
push 0x61cc20
call fcn.0051e0b0
cmp byte [esi + 0x28], 0
je 0x52b5f6
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f78]
add eax, 0xc
push 0x61cc98
add ecx, eax
call fcn.0051e0b0
mov eax, dword [ebp - 0x2f9c]
cdq
and edx, 3
mov dword [ebp - 0x2f98], 0
add eax, edx
sar eax, 2
cmp dword [ebp - 0x2f84], 0
mov dword [ebp - 0x2f68], eax
jbe 0x52ba9c
xor ecx, ecx
mov dword [ebp - 0x2f74], 0
mov dword [ebp - 0x2f7c], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52c790
mov eax, dword [ebp - 0x2f98]
cmp eax, dword [ebp - 0x2f8c]
jae 0x52b6a4
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653868
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
jmp 0x52b6bd
lea ecx, [ebp - 0x1fc0]
jne 0x52b6b3
push 0x653888
jmp 0x52b6b8
push 0x6538a0
call fcn.0051e0b0
mov ecx, dword [ebp - 0x2f74]
lea eax, [ebp - 0x1fb0]
add ecx, dword [ebp - 0x2018]
push eax
push 0x61afe8
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52b84c
push 1
push 0x5ff7b8
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x21a0]
call fcn.0051ae40
mov ecx, eax
call fcn.0051afe0
test eax, eax
je 0x52b84c
lea ecx, [ebp - 0x21a0]
mov dword [ebp - 0x2f6c], 0
call fcn.0051afe0
test eax, eax
je 0x52b84c
mov edi, dword [ebp - 0x2f6c]
nop
push 3
push 1
push edi
lea ecx, [ebp - 0x21a0]
call fcn.0051aff0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051de00
lea edx, [esi + 0x1c]
mov ecx, eax
call fcn.005108d0
test al, al
jne 0x52b790
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52b832
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x6538bc
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea ecx, [ebp - 0x21a0]
inc edi
call fcn.0051afe0
cmp edi, eax
jb 0x52b740
mov edi, dword [ebp - 0x2fa0]
mov ecx, dword [ebp - 0x2f74]
lea eax, [ebp - 0x1f94]
add ecx, dword [ebp - 0x2018]
push eax
push 0x612f74
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52b95d
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52b8b7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52ba6a
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x6538dc
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov ecx, dword [ebp - 0x2f74]
lea eax, [ebp - 0x1f94]
add ecx, dword [ebp - 0x2018]
push eax
push 0x61b008
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52ba6a
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52b9c8
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52ba6a
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x6538f4
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f98]
mov ecx, dword [ebp - 0x2f7c]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f74], 0xc
mov dword [ebp - 0x2f98], eax
mov dword [ebp - 0x2f7c], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52b634
movsd xmm0, qword [0x6be4d0]
comisd xmm0, xmmword [esi + 8]
jbe 0x52bc40
push 0
push 0x20019
push 0x64b268
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52bc40
lea eax, [ebp - 0x2e2c]
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
je 0x52bc40
xor edi, edi
nop dword [eax]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1ff0]
push 0x5fe504
push 0x64b268
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x64b328
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
test al, al
je 0x52bc1e
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52bb82
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52bc1e
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fa0]
push 0x653910
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea eax, [ebp - 0x2e2c]
inc edi
push eax
push edi
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
jne 0x52baf0
mov edi, dword [ebp - 0x2fa0]
push 0
push 0x653940
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f70]
push 0x6539e4
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x2f70], ecx
push ecx
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x52c790
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x653a20
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f8c]
mov dword [ebp - 0x2fec], 0x60fd38
mov dword [ebp - 0x2fe8], 0x60fd40
mov dword [ebp - 0x2fe4], 0x60fd50
test eax, eax
je 0x52bd52
xor edi, edi
mov dword [ebp - 0x2f7c], eax
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [ebp - 0x2058]
mov esi, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [edi + ecx]
add esi, edi
push 0x60fc88
call fcn.0051dd30
push eax
push str.HKU_
mov ecx, esi
call fcn.0051dda0
add edi, 0xc
sub dword [ebp - 0x2f7c], 1
jne 0x52bd00
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov ecx, dword [ebp - 0x2f78]
add ecx, dword [ebp - 0x2018]
push 0x64b558
call fcn.0051e0b0
cmp byte [esi + 0x28], 0
je 0x52bd89
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f78]
add eax, 0xc
push 0x64b440
add ecx, eax
call fcn.0051e0b0
xor eax, eax
mov dword [ebp - 0x2f7c], eax
cmp dword [ebp - 0x2f84], eax
jbe 0x52c073
xor ecx, ecx
mov dword [ebp - 0x2f74], eax
mov dword [ebp - 0x2f6c], ecx
nop dword [eax + eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52c790
xor edx, edx
mov dword [ebp - 0x2f98], edx
nop
mov eax, dword [ebp - 0x2f7c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
cmp eax, dword [ebp - 0x2f8c]
jae 0x52be26
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2030]
push 0x6056b4
push dword [ebp + edx*4 - 0x2fec]
push 0x5fe504
call fcn.0051dd30
push eax
push 0x653880
jmp 0x52be44
push 0
push 0
push 0x6056b4
push dword [ebp + edx*4 - 0x2fec]
jne 0x52be3f
push 0x653ac8
jmp 0x52be44
push 0x653adc
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
mov eax, dword [ebp - 0x2f98]
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp + eax*4 - 0x2fec]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52c02b
lea eax, [ebp - 0x2e2c]
mov dword [ebp - 0x2f88], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.005180d0
test al, al
je 0x52c02b
nop dword [eax]
lea eax, [ebp - 0x1f94]
push eax
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
test al, al
je 0x52c003
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
jne 0x52c003
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52bf4d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52c003
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52c790
mov eax, dword [ebp - 0x2f88]
lea ecx, [ebp - 0x2e2c]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f88], eax
call fcn.005180d0
test al, al
jne 0x52bee0
mov edx, dword [ebp - 0x2f98]
inc edx
mov dword [ebp - 0x2f98], edx
cmp edx, 3
jb 0x52bde0
mov eax, dword [ebp - 0x2f7c]
mov ecx, dword [ebp - 0x2f6c]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f74], 0xc
mov dword [ebp - 0x2f7c], eax
mov dword [ebp - 0x2f6c], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52bdb0
lea eax, [esi + 0x25c]
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051e080
lea ecx, [esi + 0x238]
call fcn.0051df40
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051ca50
mov eax, dword [ebp - 0x2f70]
add eax, dword [ebp - 0x2f68]
mov dword [ebp - 0x2f70], eax
mov eax, dword [ebp - 0x2f8c]
test eax, eax
je 0x52c133
xor ecx, ecx
mov dword [ebp - 0x2f88], eax
mov dword [ebp - 0x2f6c], ecx
nop word [eax + eax]
mov esi, dword [ebp - 0x2084]
mov edi, dword [ebp - 0x2018]
add esi, ecx
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
add edi, ecx
lea ecx, [ebp - 0x1fb0]
push 0
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.0051dd30
push eax
mov ecx, edi
call fcn.0051dda0
mov ecx, dword [ebp - 0x2f6c]
add ecx, 0xc
sub dword [ebp - 0x2f88], 1
mov dword [ebp - 0x2f6c], ecx
jne 0x52c0d0
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov ecx, dword [ebp - 0x2f78]
lea eax, [esi + 0x1d8]
add ecx, dword [ebp - 0x2018]
push eax
call fcn.0051e080
push 0x250
xorps xmm0, xmm0
lea eax, [ebp - 0x2798]
push 0
movups xmmword [ebp - 0x2548], xmm0
push eax
mov dword [ebp - 0x2548], 0xffffffff
call fcn.00420580
add esp, 0xc
push 0x4c
lea eax, [ebp - 0x22c8]
mov byte [ebp - 4], 0x1a
push 0
push eax
call fcn.00420580
add esp, 0xc
lea ecx, [ebp - 0x22c8]
call fcn.005114f0
mov eax, dword [ebp - 0x2f8c]
inc eax
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov dword [ebp - 0x2f98], 0
mov dword [ebp - 0x2f88], eax
mov dword [ebp - 0x2f74], 0
mov dword [ebp - 0x2f6c], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f88]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52c773
mov eax, dword [ebp - 0x2f8c]
cmp dword [ebp - 0x2f98], eax
jne 0x52c20b
push 0x653af8
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
jmp 0x52c244
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653b24
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x616108
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
push 3
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2798]
call fcn.00401830
test al, al
je 0x52c47b
nop dword [eax + eax]
push 0
mov edx, 0x616120
lea ecx, [ebp - 0x276c]
call fcn.0051a8a0
test eax, eax
je 0x52c468
xor eax, eax
lea edx, [ebp - 0x276c]
mov dword [ebp - 0x2f7c], eax
cmp word [ebp - 0x276c], ax
je 0x52c2f5
mov esi, eax
movzx ecx, word [edx + 2]
add edx, 2
cmp ecx, 0x2e
mov eax, edx
cmovne eax, esi
mov esi, eax
test cx, cx
jne 0x52c2d3
mov dword [ebp - 0x2f7c], esi
mov esi, dword [ebp - 0x2f90]
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
mov ecx, dword [ebp - 0x2f74]
lea eax, [ebp - 0x276c]
add ecx, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 0x60c0b4
lea ecx, [ebp - 0x1fb0]
call fcn.0051e060
test al, al
je 0x52c3b1
push 0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x22c8]
call fcn.005113b0
lea ecx, [ebp - 0x22c8]
call fcn.00511330
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
call dword [0x5de620]
test eax, eax
jne 0x52c3b1
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52c468
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
lea eax, [ebp - 0x276c]
push eax
push 0x623a58
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52c773
lea ecx, [ebp - 0x2798]
call fcn.004017e0
test al, al
jne 0x52c2a0
mov eax, dword [ebp - 0x2f98]
mov ecx, dword [ebp - 0x2f6c]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f74], 0xc
mov dword [ebp - 0x2f98], eax
mov dword [ebp - 0x2f6c], ecx
cmp eax, dword [ebp - 0x2f8c]
jbe 0x52c1c4
push 0
push 0x653b50
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f9c]
push 0
lea eax, [eax + eax*2]
sub ecx, eax
mov eax, dword [ebp - 0x2f70]
add eax, ecx
lea ecx, [esi + 0x14e0]
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
lea ecx, [ebp - 0x22c8]
call fcn.00511020
mov eax, dword [ebp - 0x2548]
cmp eax, 0xffffffff
je 0x52c509
push eax
call dword [0x5de484]
lea ecx, [ebp - 0x21a0]
mov byte [ebp - 4], 0x18
call fcn.0051b050
xorps xmm0, xmm0
mov dword [ebp - 0x2068], 0
lea ecx, [ebp - 0x2070]
movq qword [ebp - 0x2070], xmm0
call fcn.0051e180
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x2040]
xorps xmm0, xmm0
mov dword [ebp - 0x2038], 0
movq qword [ebp - 0x2040], xmm0
call fcn.0051e180
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x2164]
xorps xmm0, xmm0
mov dword [ebp - 0x215c], 0
movq qword [ebp - 0x2164], xmm0
call fcn.0051e180
push 8
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2e44]
push 0x653c08
mov dword [ebp - 0x2e44], 0
call fcn.00401aa0
mov eax, dword [ebp - 0x2fac]
mov byte [ebp - 4], 0x1f
test al, 4
je 0x52d5e3
push 0x653c60
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x653cc0
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f8c]
test eax, eax
je 0x52c688
xor edi, edi
mov dword [ebp - 0x2f6c], eax
nop word [eax + eax]
mov ecx, dword [ebp - 0x2058]
mov esi, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ecx + edi]
add esi, edi
push 0x6181a8
call fcn.0051dd30
push eax
push str.HKU_
mov ecx, esi
call fcn.0051dda0
add edi, 0xc
sub dword [ebp - 0x2f6c], 1
jne 0x52c630
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov eax, dword [ebp - 0x2f8c]
lea ecx, [eax + eax*2]
shl ecx, 2
mov dword [ebp - 0x2f98], ecx
add ecx, dword [ebp - 0x2018]
push 0x63c120
call fcn.0051e0b0
cmp byte [esi + 0x28], 0
je 0x52c6c5
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f98]
add eax, 0xc
push 0x63c230
add ecx, eax
call fcn.0051e0b0
mov eax, dword [ebp - 0x2f9c]
cdq
and edx, 3
mov dword [ebp - 0x2f7c], 0
add eax, edx
sar eax, 2
cmp dword [ebp - 0x2f84], 0
mov dword [ebp - 0x2f68], eax
jbe 0x52ca15
xor ecx, ecx
mov dword [ebp - 0x2f78], 0
mov dword [ebp - 0x2f6c], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f7c]
cmp eax, dword [ebp - 0x2f8c]
jae 0x52c7a7
mov ecx, dword [ebp - 0x2f78]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653d90
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
jmp 0x52c7c0
lea ecx, [ebp - 0x22c8]
call fcn.00511020
mov eax, dword [ebp - 0x2548]
cmp eax, 0xffffffff
je 0x52c790
push eax
call dword [0x5de484]
lea ecx, [ebp - 0x21a0]
call fcn.0051b050
mov byte [ebp - 0x2f61], 2
jmp 0x5319ac
lea ecx, [ebp - 0x1fc0]
jne 0x52c7b6
push 0x653db0
jmp 0x52c7bb
push 0x653dd0
call fcn.0051e0b0
mov ecx, dword [ebp - 0x2f78]
add ecx, dword [ebp - 0x2018]
push 0
push 0x20019
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52c9dd
lea eax, [ebp - 0x1f94]
push eax
push 0x611d1c
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
test al, al
je 0x52c868
lea ecx, [ebp - 0x1f94]
call fcn.0051df40
test eax, eax
je 0x52c868
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653df4
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x653e1c
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea eax, [ebp - 0x1f94]
push eax
push 0x611df4
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
test al, al
je 0x52c8e4
lea ecx, [ebp - 0x1f94]
call fcn.0051df40
test eax, eax
je 0x52c8e4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653e40
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x653e88
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea eax, [ebp - 0x1f94]
push eax
push 0x64a228
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
test al, al
je 0x52c9dd
lea ecx, [ebp - 0x1f94]
call fcn.0051df40
test eax, eax
je 0x52c9dd
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
call dword [0x5de620]
test eax, eax
jne 0x52c947
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
push 0x653ec8
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x653eec
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f7c]
mov ecx, dword [ebp - 0x2f6c]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f78], 0xc
mov dword [ebp - 0x2f7c], eax
mov dword [ebp - 0x2f6c], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52c703
mov eax, dword [ebp - 0x2f68]
cdq
and edx, 3
add eax, edx
sar eax, 2
add dword [ebp - 0x2f70], eax
mov dword [ebp - 0x2f78], eax
mov eax, dword [ebp - 0x2f8c]
test eax, eax
je 0x52ca92
xor edi, edi
mov dword [ebp - 0x2f6c], eax
nop dword [eax]
mov ecx, dword [ebp - 0x2058]
mov esi, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ecx + edi]
add esi, edi
push 0x6182f8
call fcn.0051dd30
push eax
push str.HKU_
mov ecx, esi
call fcn.0051dda0
add edi, 0xc
sub dword [ebp - 0x2f6c], 1
jne 0x52ca40
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov ecx, dword [ebp - 0x2f98]
add ecx, dword [ebp - 0x2018]
push 0x63c580
call fcn.0051e0b0
cmp byte [esi + 0x28], 0
je 0x52cac9
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f98]
add eax, 0xc
push 0x63c5f0
add ecx, eax
call fcn.0051e0b0
cmp dword [ebp - 0x2f84], 0
mov dword [ebp - 0x2f7c], 0
jbe 0x52ccee
xor ecx, ecx
mov dword [ebp - 0x2f74], 0
mov dword [ebp - 0x2f6c], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2018]
push 0
push 0x20019
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52ccbc
mov eax, dword [ebp - 0x2f7c]
cmp eax, dword [ebp - 0x2f8c]
jae 0x52cb8e
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653f10
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
jmp 0x52cba7
lea ecx, [ebp - 0x1fc0]
jne 0x52cb9d
push 0x653f28
jmp 0x52cba2
push 0x653f40
call fcn.0051e0b0
lea eax, [ebp - 0x2e2c]
mov dword [ebp - 0x2f88], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
je 0x52ccbc
mov esi, dword [ebp - 0x2f88]
mov edi, dword [ebp - 0x2f74]
nop dword [eax]
mov ecx, dword [ebp - 0x2018]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ecx + edi]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
lea eax, [ebp - 0x1fb0]
push eax
push 0x60eea4
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
test al, al
je 0x52cc94
lea ecx, [ebp - 0x1fb0]
call fcn.0051da30
test al, al
jne 0x52cc94
push 0
push 0
push 0
push 0
push 0
push 0x653f5c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x2e2c]
inc esi
push eax
push esi
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
jne 0x52cbe0
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov eax, dword [ebp - 0x2f7c]
mov ecx, dword [ebp - 0x2f6c]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f74], 0xc
mov dword [ebp - 0x2f7c], eax
mov dword [ebp - 0x2f6c], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52caf2
mov ecx, dword [ebp - 0x2f70]
mov eax, dword [ebp - 0x2f78]
add ecx, eax
cmp dword [ebp - 0x2f84], 0
mov dword [ebp - 0x2f70], ecx
mov dword [ebp - 0x2f7c], 0
jbe 0x52d188
xor ecx, ecx
mov dword [ebp - 0x2f74], 0
mov dword [ebp - 0x2f88], ecx
nop dword [eax + eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f7c]
cmp eax, dword [ebp - 0x2f8c]
jae 0x52ce16
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2058]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x612778
call fcn.0051dd30
push eax
push str.HKU_
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2058]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653f8c
call fcn.0051dd30
push eax
push str.HKU_
lea ecx, [ebp - 0x2070]
call fcn.0051dda0
mov ecx, dword [ebp - 0x2f74]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x653fbc
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
jmp 0x52ce61
push 1
lea ecx, [ebp - 0x1ff0]
jne 0x52ce33
push 0x63c498
call fcn.0051de00
push 1
push 0x653fd4
jmp 0x52ce44
push 0x63c500
call fcn.0051de00
push 1
push 0x654038
lea ecx, [ebp - 0x2070]
call fcn.0051de00
push 1
push 0x65400c
lea ecx, [ebp - 0x1fc0]
call fcn.0051de00
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52d14a
lea eax, [ebp - 0x2e2c]
mov dword [ebp - 0x2f6c], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.005180d0
test al, al
je 0x52d14a
nop dword [eax]
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
push 0
push dword [ebp - 0x2e44]
lea ecx, [ebp - 0x1fb0]
call fcn.0051b660
test al, al
je 0x52d122
lea ecx, [ebp - 0x1f94]
call fcn.0051dfa0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fba0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
test al, al
je 0x52cf54
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52cfae
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fbc0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52d017
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fbc0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
lea ecx, [ebp - 0x1f94]
test al, al
je 0x52d038
push 0x654088
call fcn.0051e0b0
jmp 0x52d06c
push 3
lea edx, [esi + 0x1c]
call fcn.005108d0
test al, al
jne 0x52d06c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52d122
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f6c]
lea ecx, [ebp - 0x2e2c]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f6c], eax
call fcn.005180d0
test al, al
jne 0x52ceb0
mov eax, dword [ebp - 0x2f7c]
mov ecx, dword [ebp - 0x2f88]
inc eax
add ecx, dword [ebp - 0x2f68]
add dword [ebp - 0x2f74], 0xc
mov dword [ebp - 0x2f7c], eax
mov dword [ebp - 0x2f88], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52cd30
mov eax, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f70]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
add ecx, eax
mov dword [ebp - 0x2fcc], 0x63bf08
push 0
mov dword [ebp - 0x2f70], ecx
lea ecx, [esi + 0x2b0]
push 0x6540a8
mov dword [ebp - 0x2fc8], 0x63bfa8
mov dword [ebp - 0x2fc4], 0
mov dword [ebp - 0x2fbc], 0x63cb40
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051dda0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
mov dword [ebp - 0x2fc0], eax
xor eax, eax
mov dword [ebp - 0x2f74], eax
push 0
push 0x20019
push dword [ebp + eax*4 - 0x2fcc]
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52d588
mov eax, dword [ebp - 0x2f74]
lea ecx, [esi + 0x14e0]
imul eax, dword [ebp - 0x2f68]
xor edx, edx
push 0
div dword [ebp - 0x2f84]
add eax, dword [ebp - 0x2f70]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f74]
test eax, eax
jne 0x52d2a4
push 0x654114
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
push 0x653fd4
lea ecx, [ebp - 0x2070]
call fcn.0051e0b0
xor eax, eax
cmp dword [ebp - 0x2f74], 2
lea ecx, [ebp - 0x2e2c]
push ecx
mov dword [ebp - 0x2f6c], eax
lea ecx, [ebp - 0x1fa4]
push eax
jae 0x52d2f7
call fcn.00518170
jmp 0x52d2fc
cmp eax, 1
jne 0x52d2c0
push 0x654120
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
push 0x654038
jmp 0x52d273
cmp eax, 2
jne 0x52d2cc
push 0x654138
jmp 0x52d263
cmp eax, 3
jne 0x52d2d8
push 0x65415c
jmp 0x52d263
cmp eax, 4
jne 0x52d26e
push 0x654184
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
push 0x654038
jmp 0x52d273
call fcn.005180d0
test al, al
je 0x52d588
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
push 0
push dword [ebp - 0x2e44]
lea ecx, [ebp - 0x1f94]
call fcn.0051b660
test al, al
je 0x52d57c
lea ecx, [ebp - 0x1f94]
call fcn.0051dfa0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fba0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
test al, al
je 0x52d3a8
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52d402
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fbc0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52d46b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fbc0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2070]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2040]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52d48c
push 0x654088
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
jmp 0x52d4c6
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1fb0]
call fcn.005108d0
test al, al
jne 0x52d4c6
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52d57c
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f6c]
inc eax
jmp 0x52d280
mov eax, dword [ebp - 0x2f74]
inc eax
mov dword [ebp - 0x2f74], eax
cmp eax, 5
jb 0x52d201
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f9c]
push 0
lea eax, [eax + eax*2]
sub ecx, eax
mov eax, dword [ebp - 0x2f70]
add eax, ecx
lea ecx, [esi + 0x14e0]
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
push 0
push 0x6541c0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2fac]
test al, 8
je 0x52dd55
push 0x654290
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x654300
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f9c]
cdq
sub eax, edx
sar eax, 1
xor ecx, ecx
mov dword [ebp - 0x2f7c], eax
mov dword [ebp - 0x2f88], ecx
test ecx, ecx
lea ecx, [ebp - 0x1ff0]
jne 0x52d683
push 0x61b430
call fcn.0051e0b0
push 1
push 0x6543bc
jmp 0x52d694
push 0x61b4d0
call fcn.0051e0b0
push 1
push 0x6543dc
lea ecx, [ebp - 0x1fc0]
call fcn.0051de00
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52d85f
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f6c], eax
jne 0x531a37
lea ecx, [ebp - 0x2e2c]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
je 0x52d85f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1ff0]
push 0x5fe504
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2164]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push str.Debugger
lea ecx, [ebp - 0x2164]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
test al, al
je 0x52d853
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
jne 0x52d853
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52d79d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52d853
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x531a37
mov eax, dword [ebp - 0x2f6c]
inc eax
jmp 0x52d6c7
mov ecx, dword [ebp - 0x2f88]
xor eax, eax
inc ecx
cmp byte [esi + 0x28], al
mov dword [ebp - 0x2f88], ecx
setne al
inc eax
cmp ecx, eax
jl 0x52d666
mov eax, dword [ebp - 0x2f70]
lea ecx, [ebp - 0x217c]
add eax, dword [ebp - 0x2f7c]
xorps xmm0, xmm0
mov dword [ebp - 0x2f70], eax
movq qword [ebp - 0x217c], xmm0
mov dword [ebp - 0x2174], 0
call fcn.0051e180
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x2fd8]
xor ecx, ecx
mov dword [ebp - 0x2fd8], 0x654404
mov dword [ebp - 0x2fd4], 0x654420
mov dword [ebp - 0x2fd0], 0x654468
mov dword [ebp - 0x2fcc], 0x6544a8
mov dword [ebp - 0x2fc8], 0x654514
mov dword [ebp - 0x2fc4], 0x654538
mov dword [ebp - 0x2fc0], 0x654588
mov dword [ebp - 0x2fbc], 0x6545b8
mov dword [ebp - 0x2f78], 0
mov dword [ebp - 0x2f88], ecx
mov dword [ebp - 0x2f68], eax
mov eax, ecx
lea ecx, [esi + 0x14e0]
shr eax, 3
add eax, dword [ebp - 0x2f70]
push 0
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52e574
cmp dword [ebp - 0x2f78], 4
lea ecx, [ebp - 0x1fc0]
jae 0x52d959
push 0x654610
jmp 0x52d95e
push 0x654634
call fcn.0051e0b0
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1fa4]
push 0
push 0x20019
push dword [eax]
call fcn.00518810
test al, al
je 0x52dcd9
lea eax, [ebp - 0x2e2c]
mov dword [ebp - 0x2f6c], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
je 0x52dcd9
mov eax, dword [ebp - 0x2f78]
and eax, 1
mov dword [ebp - 0x2f98], eax
nop word [eax + eax]
test eax, eax
jne 0x52db05
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1ff0]
push str.Command
push dword [ebp - 0x2e2c]
push 0x5fe504
push dword [eax]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52dab1
lea eax, [ebp - 0x2040]
push eax
push str.DelegateExecute
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x2040]
call fcn.0051df40
test eax, eax
je 0x52dab1
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64af58
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
push 0x64af40
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52dbe5
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1ff0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64af78
push dword [ebp - 0x2e2c]
push 0x5fe504
push dword [eax]
call fcn.0051dda0
lea eax, [ebp - 0x2040]
push eax
push 0x60eec4
jmp 0x52db69
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2040]
call fcn.0051e0b0
push 0
push dword [ebp - 0x2e44]
lea ecx, [ebp - 0x2040]
call fcn.0051b660
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
test al, al
jne 0x52dba1
push dword [ebp - 0x2e2c]
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1ff0]
push 0x5fe504
push dword [eax]
call fcn.0051dda0
lea eax, [ebp - 0x2040]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
lea ecx, [ebp - 0x2040]
call fcn.0051df40
test eax, eax
je 0x52dbe5
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64af58
lea ecx, [ebp - 0x2040]
call fcn.0051dd30
push eax
push 0x64af40
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fe50c
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005183c0
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52dcab
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52e574
mov eax, dword [ebp - 0x2f6c]
lea ecx, [ebp - 0x2e2c]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f6c], eax
call fcn.00518170
test al, al
mov eax, dword [ebp - 0x2f98]
jne 0x52d9c0
mov eax, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f88]
inc eax
mov edx, dword [ebp - 0x2f7c]
add ecx, edx
add dword [ebp - 0x2f68], 4
mov dword [ebp - 0x2f78], eax
mov dword [ebp - 0x2f88], ecx
cmp eax, 8
jb 0x52d921
mov eax, dword [ebp - 0x2f9c]
mov ecx, dword [ebp - 0x2f70]
sub eax, edx
add ecx, eax
push 0
mov dword [ebp - 0x2f70], ecx
push ecx
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0x654660
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x217c]
mov byte [ebp - 4], 0x1f
call fcn.0051dfd0
mov eax, dword [ebp - 0x2fac]
test al, 0x10
je 0x52e7da
push 0x65470c
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
mov eax, 0x55555556
xorps xmm0, xmm0
imul dword [ebp - 0x2f9c]
movlpd qword [ebp - 0x2e4c], xmm0
mov dword [ebp - 0x2e4c], 0
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2f74], eax
mov dword [ebp - 0x2050], 0
mov dword [ebp - 0x2028], 0
mov dword [ebp - 0x2e34], 0
push 0x80000000
push 0
push 0
mov byte [ebp - 4], 0x22
call dword [0x5de100]
mov ecx, dword [ebp - 0x2e34]
mov dword [ebp - 0x2f6c], eax
test ecx, ecx
je 0x52ddf7
push ecx
call dword [0x5de10c]
mov eax, dword [ebp - 0x2f6c]
mov dword [ebp - 0x2e34], eax
test eax, eax
je 0x52e137
push 0
push 0
lea ecx, [ebp - 0x2028]
push ecx
lea ecx, [ebp - 0x2050]
push ecx
push 0
push 0
push 3
push 0x30
push 0
push eax
call dword [0x5de074]
call dword [0x5de42c]
cmp eax, 0xea
jne 0x52e137
cmp byte [edi], 0
jne 0x52e137
mov eax, dword [ebp - 0x2050]
lea ecx, [ebp - 0x2e4c]
add eax, 0x400
push eax
mov dword [ebp - 0x2f6c], eax
call fcn.00404060
test eax, eax
je 0x52e137
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push dword [ebp - 0x2f6c]
push dword [ebp - 0x2e4c]
push 3
push 0x30
push 0
push dword [ebp - 0x2e34]
call dword [0x5de074]
test eax, eax
je 0x52e137
mov eax, dword [ebp - 0x2e4c]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2028]
mov dword [ebp - 0x2f78], eax
call fcn.0051cf20
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f94]
push 0x654738
call fcn.0051dd30
push eax
push 0x6547cc
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f6c], 0
test ecx, ecx
je 0x52e125
xor eax, eax
mov dword [ebp - 0x2f88], eax
nop dword [eax]
xor edx, edx
div ecx
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52e72f
mov eax, dword [ebp - 0x2f78]
lea ecx, [ebp - 0x1ff0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60fc58
push dword [eax]
push 0x6240b0
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x60fc70
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52dfb6
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52e010
push 0
lea ecx, [ebp - 0x1ff0]
call fcn.0051da50
lea eax, [ebp - 0x1f94]
push eax
push 0x60fc70
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52dff9
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52e010
lea eax, [ebp - 0x1f94]
push eax
push 0x60b654
lea ecx, [ebp - 0x1fa4]
call fcn.00518530
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52e04a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52e0f1
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov eax, dword [ebp - 0x2f78]
lea ecx, [ebp - 0x1fa0]
push 0x623a58
push dword [eax]
push 0x6547ec
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52e72f
mov edx, dword [ebp - 0x2f6c]
mov eax, dword [ebp - 0x2f88]
inc edx
add eax, dword [ebp - 0x2f74]
add dword [ebp - 0x2f78], 0x2c
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f6c], edx
mov dword [ebp - 0x2f88], eax
cmp edx, ecx
jb 0x52df30
push 0
push 0x654810
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f74]
push 0x6548b4
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52e72f
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push 0
push 0
push 3
push 0xb
push 0
push dword [ebp - 0x2e34]
call dword [0x5de074]
call dword [0x5de42c]
cmp eax, 0xea
jne 0x52e4b0
cmp byte [edi], 0
jne 0x52e4b0
mov eax, dword [ebp - 0x2050]
lea ecx, [ebp - 0x2e4c]
add eax, 0x400
push eax
mov dword [ebp - 0x2f6c], eax
call fcn.00404060
test eax, eax
je 0x52e4b0
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push dword [ebp - 0x2f6c]
push dword [ebp - 0x2e4c]
push 3
push 0xb
push 0
push dword [ebp - 0x2e34]
call dword [0x5de074]
test eax, eax
je 0x52e4b0
mov eax, dword [ebp - 0x2e4c]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2028]
mov dword [ebp - 0x2f68], eax
call fcn.0051cf20
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f94]
push 0x6548f0
call fcn.0051dd30
push eax
push 0x654990
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe504
push dword [esi + 0x20]
lea ecx, [ebp - 0x1fb0]
call fcn.0051dda0
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f6c], 0
test ecx, ecx
je 0x52e49e
xor eax, eax
mov dword [ebp - 0x2f88], eax
xor edx, edx
div ecx
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52e72f
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1ff0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [eax]
push 0x6240b0
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
push 0x60b654
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
test al, al
je 0x52e339
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
je 0x52e369
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str..sys
push dword [eax]
push str.drivers_
push dword [esi + 0x24]
call fcn.0051dda0
push 0
push 1
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push str.SystemRoot_
lea ecx, [ebp - 0x1f94]
call fcn.0051c000
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52e3c3
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52e46a
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1fa0]
push 0x623a58
push dword [eax]
push 0x6549c0
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52e72f
mov edx, dword [ebp - 0x2f6c]
mov eax, dword [ebp - 0x2f88]
inc edx
add eax, dword [ebp - 0x2f74]
add dword [ebp - 0x2f68], 0x2c
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f6c], edx
mov dword [ebp - 0x2f88], eax
cmp edx, ecx
jb 0x52e2b6
push 0
push 0x6549e0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f74]
push 0x654a94
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x654ad0
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6be4d8]
jb 0x52e767
push 4
lea ecx, [ebp - 0x2e30]
call fcn.00401ed0
lea ecx, [ebp - 0x2e30]
call fcn.00401a90
lea eax, [ebp - 0x2e30]
push eax
push 0x5f88fc
push 1
push 0
push 0x5f8b0c
call dword [0x5dea70]
test eax, eax
jns 0x52e58b
lea ecx, [ebp - 0x2e30]
mov byte [ebp - 4], 0x22
call fcn.004031b0
jmp 0x52e780
lea ecx, [ebp - 0x217c]
call fcn.0051dfd0
mov byte [ebp - 0x2f61], 2
jmp 0x531980
lea ecx, [ebp - 0x3038]
call fcn.00401e10
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x3028]
movups xmmword [ebp - 0x2ff0], xmm0
call fcn.00401e10
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x3018]
movups xmmword [ebp - 0x3048], xmm0
call fcn.00401e10
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x3008]
movups xmmword [ebp - 0x2fc8], xmm0
call fcn.00401e10
mov edi, eax
mov byte [ebp - 4], 0x27
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x2ff0]
mov ecx, dword [ebp - 0x2e30]
mov edx, esp
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov esi, dword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ebp - 0x3048]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x2fc8]
movups xmmword [eax], xmm0
mov eax, esp
movups xmm0, xmmword [edi]
push ecx
movups xmmword [eax], xmm0
mov eax, dword [esi + 0x28]
call eax
lea ecx, [ebp - 0x3008]
mov esi, eax
call fcn.00401ea0
lea ecx, [ebp - 0x3018]
call fcn.00401ea0
lea ecx, [ebp - 0x3028]
call fcn.00401ea0
lea ecx, [ebp - 0x3038]
mov byte [ebp - 4], 0x23
call fcn.00401ea0
test esi, esi
jns 0x52e677
lea ecx, [ebp - 0x2e30]
mov byte [ebp - 4], 0x22
call fcn.004031b0
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
jmp 0x52e780
push 4
lea ecx, [ebp - 0x2e40]
call fcn.00401ed0
lea ecx, [ebp - 0x2e40]
call fcn.00401a90
push 0x5fe504
lea ecx, [ebp - 0x2ff4]
mov byte [ebp - 4], 0x28
call fcn.00401b70
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x2e30]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2e40]
push ecx
mov ecx, eax
call fcn.00401c30
push eax
push dword [ebp - 0x2e30]
mov eax, dword [esi + 0x1c]
call eax
lea ecx, [ebp - 0x2ff4]
mov byte [ebp - 4], 0x28
mov esi, eax
call fcn.00401c20
test esi, esi
jns 0x52e6ee
lea ecx, [ebp - 0x2e40]
call fcn.004031b0
jmp 0x52e657
mov edi, dword [ebp - 0x2fa0]
lea eax, [ebp - 0x2010]
mov esi, dword [ebp - 0x2f90]
mov ecx, esi
push edi
push eax
push dword [ebp - 0x2f80]
push dword [ebp - 0x2e40]
call fcn.00528f90
lea ecx, [ebp - 0x2e40]
test al, al
jne 0x52e751
call fcn.004031b0
lea ecx, [ebp - 0x2e30]
call fcn.004031b0
lea ecx, [ebp - 0x2e34]
call fcn.004016a0
lea ecx, [ebp - 0x2e4c]
call fcn.00403270
mov byte [ebp - 0x2f61], 2
jmp 0x531980
call fcn.004031b0
lea ecx, [ebp - 0x2e30]
mov byte [ebp - 4], 0x22
call fcn.004031b0
jmp 0x52e780
push edi
lea eax, [ebp - 0x2010]
mov ecx, esi
push eax
push dword [ebp - 0x2f80]
call fcn.00528b80
test al, al
je 0x52e72f
mov eax, dword [ebp - 0x2f9c]
sub eax, dword [ebp - 0x2f74]
mov ecx, dword [ebp - 0x2f70]
add ecx, eax
push 0
mov dword [ebp - 0x2f70], ecx
push ecx
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0x654b70
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x2e34]
call fcn.004016a0
lea ecx, [ebp - 0x2e4c]
mov byte [ebp - 4], 0x1f
call fcn.00403270
mov eax, dword [ebp - 0x2fac]
test al, 0x20
je 0x52f0ec
push 0x654c1c
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a37
push 1
push 0x654c60
lea ecx, [ebp - 0x1fa0]
call fcn.0051de00
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f8c]
test eax, eax
je 0x52e88d
xor edi, edi
mov esi, eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x615970
push edi
lea ecx, [ebp - 0x2058]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push str.HKU_
push edi
lea ecx, [ebp - 0x2018]
call fcn.004038d0
mov ecx, eax
call fcn.0051dda0
inc edi
cmp edi, esi
jb 0x52e833
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
mov eax, dword [ebp - 0x2f8c]
push 0x654d30
push eax
lea ecx, [ebp - 0x2018]
call fcn.004038d0
mov ecx, eax
call fcn.0051e0b0
cmp byte [esi + 0x28], 0
je 0x52e8ca
mov eax, dword [ebp - 0x2f8c]
lea ecx, [ebp - 0x2018]
push 0x654da8
inc eax
push eax
call fcn.004038d0
mov ecx, eax
call fcn.0051e0b0
push 0xc
lea ecx, [ebp - 0x2188]
call fcn.00401eb0
push 1
push 0x654e38
lea ecx, [ebp - 0x2188]
call fcn.0051e110
mov eax, dword [ebp - 0x2f9c]
cdq
sub eax, edx
mov byte [ebp - 4], 0x2a
sar eax, 1
cmp dword [ebp - 0x2f84], 0
mov dword [ebp - 0x2f78], eax
mov dword [ebp - 0x2f68], 0
jbe 0x52ed35
xor ecx, ecx
mov dword [ebp - 0x2f88], ecx
nop dword [eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f84]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52f28a
mov eax, dword [ebp - 0x2f68]
cmp eax, dword [ebp - 0x2f8c]
jae 0x52e992
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x654e8c
push eax
lea ecx, [ebp - 0x2030]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
jmp 0x52e9ab
lea ecx, [ebp - 0x1fc0]
jne 0x52e9a1
push 0x654ea4
jmp 0x52e9a6
push 0x654ecc
call fcn.0051e0b0
push 0
push 0x20019
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x2018]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52ed0a
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f6c], eax
jne 0x52f28a
lea ecx, [ebp - 0x2e2c]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518170
test al, al
je 0x52ed0a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2018]
push 0x5fe504
push dword [ebp - 0x2f68]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.00518810
test al, al
je 0x52ecfe
lea eax, [ebp - 0x1f94]
push eax
push 0x615b14
lea ecx, [ebp - 0x1fb4]
call fcn.00518530
test al, al
je 0x52ecfe
lea ecx, [ebp - 0x1f94]
call fcn.0051da30
test al, al
jne 0x52ecfe
lea eax, [ebp - 0x1fb0]
push eax
push 0x60b684
lea ecx, [ebp - 0x1fb4]
call fcn.00518530
test al, al
je 0x52ecfe
lea ecx, [ebp - 0x1fb0]
call fcn.0051da30
test al, al
jne 0x52ecfe
lea eax, [ebp - 0x2134]
push eax
push 0x615a4c
lea ecx, [ebp - 0x1fb4]
call fcn.005184a0
test al, al
je 0x52eafd
cmp dword [ebp - 0x2134], 1
je 0x52ecfe
lea eax, [ebp - 0x2024]
push eax
push 0x615a6c
lea ecx, [ebp - 0x1fb4]
call fcn.00518530
test al, al
je 0x52eb2b
lea ecx, [ebp - 0x2024]
call fcn.0051df40
test eax, eax
jne 0x52ecfe
lea eax, [ebp - 0x2024]
push eax
push 0x615a88
lea ecx, [ebp - 0x1fb4]
call fcn.00518530
test al, al
je 0x52ebaf
lea ecx, [ebp - 0x2024]
call fcn.0051df40
test eax, eax
je 0x52ebaf
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe640
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x5fe640
lea ecx, [ebp - 0x2024]
call fcn.0051dda0
push 0
push 1
push 1
push 0
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2188]
call fcn.0051c760
test eax, eax
jne 0x52ecfe
lea eax, [ebp - 0x2024]
push eax
push 0x615b34
lea ecx, [ebp - 0x1fb4]
call fcn.00518530
test al, al
je 0x52ebd9
lea ecx, [ebp - 0x2024]
call fcn.0051da30
test al, al
je 0x52ebe9
push str.No_publisher
lea ecx, [ebp - 0x2024]
call fcn.0051e0b0
test byte [ebp - 0x2f80], 2
je 0x52ec12
push 9
push 1
push 1
push 0
push str.Microsoft
lea ecx, [ebp - 0x2024]
call fcn.0051c760
test eax, eax
jne 0x52ecfe
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005108d0
test al, al
jne 0x52ec4c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52ecfe
push 0
push 0x60477c
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x623a58
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fc0]
push 0x623a58
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52f28a
mov eax, dword [ebp - 0x2f6c]
inc eax
jmp 0x52e9e0
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f88]
inc eax
add ecx, dword [ebp - 0x2f78]
mov dword [ebp - 0x2f68], eax
mov dword [ebp - 0x2f88], ecx
cmp eax, dword [ebp - 0x2f84]
jb 0x52e920
push 0
push 0x654f00
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f78]
push 0
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52f28a
push 0x654fa0
push dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
call fcn.004ee190
cmp byte [edi], 0
jne 0x52f28a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x654ff0
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 4
lea ecx, [ebp - 0x2e50]
call fcn.00401ed0
push 8
push 0x655088
lea ecx, [ebp - 0x2e50]
call fcn.00401aa0
cmp dword [ebp - 0x2f8c], 0
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x2f68], 0
jbe 0x52f092
xor ecx, ecx
mov dword [ebp - 0x2f88], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f8c]
push 0
add eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52f27f
movsd xmm0, qword [0x6be4d0]
lea ecx, [ebp - 0x2058]
comisd xmm0, xmmword [esi + 8]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jbe 0x52ee69
push 0x634fa8
jmp 0x52ee6e
push 0x635010
push dword [ebp - 0x2f68]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push str.HKU_
lea ecx, [ebp - 0x1ff0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6550d8
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x2030]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00518810
test al, al
je 0x52f067
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f6c], eax
jne 0x52f27f
lea ecx, [ebp - 0x2e2c]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005180d0
test al, al
je 0x52f067
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
push 2
push 2
push 1
push 1
push 0x5ff7bc
lea ecx, [ebp - 0x1f94]
call fcn.0051c760
test eax, eax
je 0x52f05b
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6be4e0]
jbe 0x52ef7b
push 0
push 0x5fe50c
push dword [ebp - 0x2e50]
lea ecx, [ebp - 0x1f94]
call fcn.0051b290
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
call dword [0x5de620]
test eax, eax
jne 0x52efac
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52f05b
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52f27f
mov eax, dword [ebp - 0x2f6c]
inc eax
jmp 0x52eef9
mov eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2f88]
inc eax
add ecx, dword [ebp - 0x2f78]
mov dword [ebp - 0x2f68], eax
mov dword [ebp - 0x2f88], ecx
cmp eax, dword [ebp - 0x2f8c]
jb 0x52ee14
push 0
push 0x6550f0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f9c]
sub eax, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f70]
add ecx, eax
push 0
mov dword [ebp - 0x2f70], ecx
push ecx
lea ecx, [esi + 0x14e0]
call fcn.004ee190
lea ecx, [ebp - 0x2e50]
call fcn.00401b50
lea ecx, [ebp - 0x2188]
mov byte [ebp - 4], 0x1f
call fcn.0051dfd0
mov eax, dword [ebp - 0x2fac]
test al, 0x40
je 0x52fd03
xor eax, eax
lea ecx, [ebp - 0x207c]
cmp byte [esi + 0x28], al
push 0xc
setne al
add eax, 3
mov dword [ebp - 0x2f6c], eax
mov eax, dword [ebp - 0x2f9c]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x2f78], eax
call fcn.00401eb0
lea ecx, [ebp - 0x207c]
call fcn.0051e180
push 0xc
lea ecx, [ebp - 0x2090]
mov byte [ebp - 4], 0x2c
call fcn.00401eb0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x2090]
push dword [ebp - 0x2f94]
push 0x6551a8
call fcn.0051e0c0
push 0xc
lea ecx, [ebp - 0x20f4]
mov byte [ebp - 4], 0x2d
call fcn.00401eb0
lea ecx, [ebp - 0x20f4]
call fcn.0051e180
push 0x260
lea ecx, [ebp - 0x2538]
mov byte [ebp - 4], 0x2e
call fcn.00401f00
lea ecx, [ebp - 0x2538]
call fcn.004016b0
mov ecx, dword [ebp - 0x2f6c]
xor eax, eax
mov byte [ebp - 4], 0x2f
mov dword [ebp - 0x2f84], eax
nop dword [eax]
imul eax, dword [ebp - 0x2f78]
push 0
cdq
idiv ecx
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f70]
push eax
call fcn.004ee190
mov eax, dword [ebp - 0x2f84]
test eax, eax
jne 0x52f2a1
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x655220
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fb0]
push 0x65527c
call fcn.0051dda0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0xffffffffffffffff
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x6552ac
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fa0]
push 0x6552b8
call fcn.0051dda0
push 0x6552e0
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
push 1
push dword [esi + 0x1c]
lea ecx, [ebp - 0x207c]
call fcn.0051de00
jmp 0x52f3cb
lea ecx, [ebp - 0x2e50]
call fcn.00401b50
lea ecx, [ebp - 0x2188]
call fcn.0051dfd0
mov byte [ebp - 0x2f61], 2
jmp 0x531980
cmp eax, 1
jne 0x52f303
push 0x655310
push 0xffffffffffffffff
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x655378
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0x6553d8
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
lea eax, [esi + 0x1c0]
jmp 0x52f3bf
cmp eax, 2
jne 0x52f362
push 0x655408
push 0xffffffffffffffff
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x655458
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0x6554a4
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
lea eax, [esi + 0x1a8]
jmp 0x52f3bf
cmp eax, 3
jne 0x52f3cb
push 0x6554d8
push 0xffffffffffffffff
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x655538
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0x655590
lea ecx, [ebp - 0x1fc0]
call fcn.0051e0b0
lea eax, [esi + 0x1b4]
push eax
lea ecx, [ebp - 0x207c]
call fcn.0051e080
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52fc53
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe654
lea ecx, [ebp - 0x207c]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20f4]
call fcn.0051dda0
push 1
lea ecx, [ebp - 0x20f4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2538]
call fcn.00401830
test al, al
je 0x52f5f8
cmp byte [edi], 0
jne 0x52fc53
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x2538]
call fcn.00401890
push eax
push 0x5fe504
lea ecx, [ebp - 0x207c]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 0x10
lea ecx, [ebp - 0x2538]
call fcn.00401880
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x52f4d4
push 1
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.004845e0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x52fc53
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0x6555c8
jmp 0x52f58a
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52f5e5
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov ecx, eax
call fcn.00508fa0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52f5e5
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x623a58
push 1
lea ecx, [ebp - 0x2538]
call fcn.00401890
push eax
push 0x623a58
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52fc53
lea ecx, [ebp - 0x2538]
call fcn.004017e0
test al, al
jne 0x52f437
mov eax, dword [ebp - 0x2f84]
test eax, eax
jne 0x52f637
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x6555e8
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fa0]
push 0x655620
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
jmp 0x52f66a
cmp eax, 1
jne 0x52f645
push 0
push 0x655680
jmp 0x52f65f
cmp eax, 2
jne 0x52f653
push 0
push 0x655740
jmp 0x52f65f
cmp eax, 3
jne 0x52f670
push 0
push 0x6557f0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f84]
mov ecx, dword [ebp - 0x2f6c]
inc eax
mov dword [ebp - 0x2f84], eax
cmp eax, ecx
jl 0x52f1c0
mov eax, dword [ebp - 0x2f70]
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f78]
push 0
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
push 0xc
lea ecx, [ebp - 0x214c]
call fcn.00401eb0
lea eax, [esi + 0x268]
push eax
lea ecx, [ebp - 0x214c]
call fcn.0051e150
push 0xc
lea ecx, [ebp - 0x2140]
mov byte [ebp - 4], 0x30
call fcn.00401eb0
lea eax, [esi + 0x274]
push eax
lea ecx, [ebp - 0x2140]
call fcn.0051e150
lea ecx, [esi + 0x238]
mov byte [ebp - 4], 0x31
call fcn.0051df40
inc eax
lea ecx, [ebp - 0x214c]
push eax
call fcn.0051ca50
lea ecx, [esi + 0x238]
call fcn.0051df40
inc eax
lea ecx, [ebp - 0x2140]
push eax
call fcn.0051ca50
xor esi, esi
mov dword [ebp - 0x2f6c], esi
cmp dword [ebp - 0x2f8c], esi
jbe 0x52fc8b
xor eax, eax
mov dword [ebp - 0x2f88], eax
nop word [eax + eax]
xor edx, edx
mov ecx, dword [ebp - 0x2fa4]
div dword [ebp - 0x2f8c]
push 0
add eax, dword [ebp - 0x2f70]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x52fc3d
xor eax, eax
mov dword [ebp - 0x2f7c], eax
nop dword [eax]
lea ecx, [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
test eax, eax
jne 0x52f856
push 0x6558a4
push esi
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x65527c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x214c]
call fcn.0051dd30
push eax
push 0x5fe504
push esi
lea ecx, [ebp - 0x2084]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x207c]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x6558e0
push esi
lea ecx, [ebp - 0x2030]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x6552b8
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x655918
jmp 0x52f917
push 0x655930
push esi
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x65527c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2140]
call fcn.0051dd30
push eax
push 0x5fe504
push esi
lea ecx, [ebp - 0x2084]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x207c]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.0051dd30
push eax
push 0x655978
push esi
lea ecx, [ebp - 0x2030]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x6552b8
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6559bc
push esi
lea ecx, [ebp - 0x2030]
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x653880
lea ecx, [ebp - 0x1fc0]
call fcn.0051dda0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
mov ecx, dword [ebp - 0x2fa4]
push eax
push 0xffffffffffffffff
call fcn.004ee190
cmp byte [edi], 0
jne 0x52fc3d
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52fc3d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe654
lea ecx, [ebp - 0x207c]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20f4]
call fcn.0051dda0
push 1
lea ecx, [ebp - 0x20f4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2538]
call fcn.00401830
test al, al
je 0x52fba1
nop dword [eax]
cmp byte [edi], 0
jne 0x52fc3d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x2538]
call fcn.00401890
push eax
push 0x5fe504
lea ecx, [ebp - 0x207c]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 0x10
lea ecx, [ebp - 0x2538]
call fcn.00401880
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x52fa71
push 1
call fcn.0051dd30
mov ecx, dword [ebp - 0x2f90]
push eax
call fcn.004845e0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x52fc3d
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0x6555c8
jmp 0x52fb2d
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
call fcn.0051dd30
mov esi, dword [ebp - 0x2f90]
mov ecx, esi
push eax
call fcn.005297d0
test al, al
je 0x52fb88
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov ecx, eax
call fcn.00508fa0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x52fb88
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x623a58
push 1
lea ecx, [ebp - 0x2538]
call fcn.00401890
push eax
push 0x623a58
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x52fc3d
lea ecx, [ebp - 0x2538]
call fcn.004017e0
test al, al
jne 0x52f9d0
mov esi, dword [ebp - 0x2f6c]
cmp dword [ebp - 0x2f7c], 0
lea ecx, [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jne 0x52fbc9
push 0x6559e0
jmp 0x52fbce
push 0x655a48
push esi
call fcn.004038d0
mov ecx, eax
call fcn.0051dd30
push eax
push 0x655620
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2f7c]
inc eax
mov dword [ebp - 0x2f7c], eax
cmp eax, 2
jb 0x52f770
mov eax, dword [ebp - 0x2f88]
inc esi
mov ecx, dword [ebp - 0x2f78]
add eax, ecx
mov dword [ebp - 0x2f6c], esi
mov dword [ebp - 0x2f88], eax
cmp esi, dword [ebp - 0x2f8c]
jb 0x52f740
jmp 0x52fc91
lea ecx, [ebp - 0x2140]
call fcn.0051dfd0
lea ecx, [ebp - 0x214c]
call fcn.0051dfd0
lea ecx, [ebp - 0x2538]
call fcn.00401730
lea ecx, [ebp - 0x20f4]
call fcn.0051dfd0
lea ecx, [ebp - 0x2090]
call fcn.0051dfd0
lea ecx, [ebp - 0x207c]
call fcn.0051dfd0
mov byte [ebp - 0x2f61], 2
jmp 0x531980
mov ecx, dword [ebp - 0x2f78]
mov eax, dword [ebp - 0x2f9c]
mov esi, dword [ebp - 0x2f70]
sub eax, ecx
mov ecx, dword [ebp - 0x2fa4]
add esi, eax
push 0
push esi
mov dword [ebp - 0x2f70], esi
call fcn.004ee190
lea ecx, [ebp - 0x2140]
call fcn.0051dfd0
lea ecx, [ebp - 0x214c]
call fcn.0051dfd0
lea ecx, [ebp - 0x2538]
call fcn.00401730
lea ecx, [ebp - 0x20f4]
call fcn.0051dfd0
lea ecx, [ebp - 0x2090]
call fcn.0051dfd0
lea ecx, [ebp - 0x207c]
mov byte [ebp - 4], 0x1f
call fcn.0051dfd0
mov eax, dword [ebp - 0x2fac]
jmp 0x52fd09
mov esi, dword [ebp - 0x2f70]
test al, al
jns 0x530430
mov ecx, dword [ebp - 0x2fa4]
push 0x655abc
push esi
call fcn.004ee190
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x655af8
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0x18
lea ecx, [ebp - 0x2118]
call fcn.00401ee0
lea ecx, [ebp - 0x2118]
call fcn.0051b0f0
mov eax, dword [ebp - 0x2f9c]
cdq
sub eax, edx
mov byte [ebp - 4], 0x32
sar eax, 1
xor esi, esi
mov dword [ebp - 0x2f68], eax
mov dword [ebp - 0x2f6c], esi
nop word [eax + eax]
mov ecx, esi
imul ecx, eax
push 0
shr ecx, 2
add ecx, dword [ebp - 0x2f70]
push ecx
mov ecx, dword [ebp - 0x2fa4]
call fcn.004ee190
cmp byte [edi], 0
jne 0x53000f
test esi, esi
jne 0x52fdfa
lea eax, [ebp - 0x1fb0]
push eax
push 0x61b588
push 0x61b630
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
push 8
lea ecx, [ebp - 0x1fb0]
call fcn.0051be70
push esi
push 0x5ff7b8
jmp 0x52fe4c
cmp esi, 1
jne 0x52fe06
push 0x61b5ac
jmp 0x52fe17
cmp esi, 2
jne 0x52fe12
push 0x61b5dc
jmp 0x52fe17
push 0x61b608
lea ecx, [ebp - 0x1f94]
call fcn.0051e0b0
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x61b6a0
lea ecx, [ebp - 0x1fa4]
call fcn.005183c0
push 0
push 0x604a10
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2118]
call fcn.0051ae40
xor esi, esi
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f7c], esi
call fcn.0051afe0
test eax, eax
je 0x530046
nop
push 3
push 1
push esi
lea ecx, [ebp - 0x2118]
call fcn.0051aff0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051de00
mov ecx, eax
call fcn.0051be70
mov ecx, eax
call fcn.0051da30
test al, al
jne 0x53002c
push 0x604c9c
lea ecx, [ebp - 0x1f94]
call fcn.0051e060
test al, al
jne 0x53002c
push 0
push 1
push 1
push 0
push str..dll
lea ecx, [ebp - 0x1f94]
call fcn.0051c760
lea ecx, [ebp - 0x1f94]
mov esi, eax
call fcn.0051df40
sub eax, 3
cmp esi, eax
je 0x52ff1c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push str..dll
lea ecx, [ebp - 0x1f94]
call fcn.0051c4c0
mov edx, dword [ebp - 0x2fb0]
lea ecx, [ebp - 0x1f94]
push 3
call fcn.005108d0
test al, al
jne 0x52ff59
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64a854
lea ecx, [ebp - 0x1f94]
call fcn.0051c280
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov ecx, dword [ebp - 0x2f90]
push eax
call fcn.005297d0
test al, al
je 0x530026
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov esi, dword [ebp - 0x2f7c]
lea ecx, [ebp - 0x2118]
push eax
push 0x623a58
push esi
call fcn.0051aff0
push eax
push 0x655b90
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
je 0x53002c
lea ecx, [ebp - 0x2118]
call fcn.0051b050
mov byte [ebp - 0x2f61], 2
jmp 0x531980
mov esi, dword [ebp - 0x2f7c]
inc esi
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f7c], esi
call fcn.0051afe0
cmp esi, eax
jb 0x52fe80
mov esi, dword [ebp - 0x2f6c]
mov eax, dword [ebp - 0x2f68]
inc esi
mov dword [ebp - 0x2f6c], esi
cmp esi, 4
jb 0x52fda0
push 0
push 0x655bc0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov eax, dword [ebp - 0x2f70]
add eax, dword [ebp - 0x2f68]
mov ecx, dword [ebp - 0x2fa4]
push 0x655c68
push eax
mov dword [ebp - 0x2f70], eax
call fcn.004ee190
push 0
push 0x655ca0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
mov esi, dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fb0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x61ced0
push dword [esi + 0x24]
call fcn.0051dda0
push 0x20
lea ecx, [ebp - 0x2250]
call fcn.00401fb0
push 0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2250]
call fcn.0050c8c0
push 0xc
lea ecx, [ebp - 0x20b8]
mov byte [ebp - 4], 0x33
call fcn.00401eb0
lea ecx, [ebp - 0x20b8]
call fcn.00403fc0
push 4
lea ecx, [ebp - 0x2e58]
mov byte [ebp - 4], 0x34
call fcn.00401ed0
push 8
push 0x655d34
lea ecx, [ebp - 0x2e58]
call fcn.00401aa0
push 0
lea eax, [ebp - 0x1fb0]
mov byte [ebp - 4], 0x35
push eax
lea ecx, [ebp - 0x2250]
call fcn.0050c080
test eax, eax
je 0x53038c
push 0
push 0x60477c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2118]
call fcn.0051ae40
mov ecx, eax
call fcn.0051afe0
test eax, eax
je 0x53038c
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f78], 0
call fcn.0051afe0
test eax, eax
je 0x53038c
mov dword [ebp - 0x2f7c], 0
push 0
lea ecx, [ebp - 0x2118]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f7c]
div ecx
lea ecx, [esi + 0x14e0]
add eax, dword [ebp - 0x2f70]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x5303f8
push dword [ebp - 0x2f78]
lea ecx, [ebp - 0x2118]
call fcn.0051aff0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.0051be70
lea ecx, [ebp - 0x1fb0]
call fcn.0051da30
test al, al
jne 0x530363
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dfe0
cmp word [eax], 0x23
je 0x530363
push 0
push 8
lea eax, [ebp - 0x20b8]
push eax
push dword [ebp - 0x2e58]
lea ecx, [ebp - 0x1fb0]
call fcn.0051b440
lea ecx, [ebp - 0x1f94]
call fcn.0051dfa0
lea ecx, [ebp - 0x20b8]
call fcn.00404090
cmp eax, 3
jae 0x530282
push 0x655d50
lea ecx, [ebp - 0x1fcc]
call fcn.0051e0b0
jmp 0x5302fb
push 1
lea ecx, [ebp - 0x20b8]
call fcn.004042c0
push eax
mov ecx, esi
call fcn.0043c020
cmp al, 1
jne 0x5302c3
push 0x64b1e4
push 2
lea ecx, [ebp - 0x20b8]
call fcn.004042c0
mov ecx, eax
call fcn.0051e060
test al, al
jne 0x530363
push 0x64b150
jmp 0x5302d7
test al, al
jne 0x5302ce
push 0x64b114
jmp 0x5302d7
cmp al, 2
jne 0x5302e2
push 0x64b198
lea ecx, [ebp - 0x1fcc]
call fcn.0051e0b0
push 2
lea ecx, [ebp - 0x20b8]
call fcn.004042c0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051e080
push 0
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x655d90
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x5303f8
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x2118]
inc dword [ebp - 0x2f78]
add dword [ebp - 0x2f7c], eax
call fcn.0051afe0
cmp dword [ebp - 0x2f78], eax
jb 0x5301b1
mov ecx, dword [ebp - 0x2f9c]
sub ecx, dword [ebp - 0x2f68]
mov eax, dword [ebp - 0x2f70]
add eax, ecx
lea ecx, [esi + 0x14e0]
push 0
push eax
call fcn.004ee190
push 0
push 0x655dc0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x2e58]
call fcn.00401b50
lea ecx, [ebp - 0x20b8]
call fcn.004042e0
lea ecx, [ebp - 0x2250]
call fcn.00401f90
lea ecx, [ebp - 0x2118]
mov byte [ebp - 4], 0x1f
call fcn.0051b050
mov eax, dword [ebp - 0x2fac]
jmp 0x530436
lea ecx, [ebp - 0x2e58]
call fcn.00401b50
lea ecx, [ebp - 0x20b8]
call fcn.004042e0
lea ecx, [ebp - 0x2250]
call fcn.00401f90
lea ecx, [ebp - 0x2118]
call fcn.0051b050
mov byte [ebp - 0x2f61], 2
jmp 0x531980
mov esi, dword [ebp - 0x2f90]
test eax, 0x100
je 0x53077e
push 1
mov dword [ebp - 0x2ec8], esi
lea ecx, [ebp - 0x2ec4]
push dword [esi + 0x1c]
call fcn.0051e110
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x2eb0]
mov byte [ebp - 0x2eb8], 0
mov dword [ebp - 0x2eb4], 0
call fcn.00401a90
push 0x2c
lea eax, [ebp - 0x2eac]
mov byte [ebp - 4], 0x37
push 0
push eax
call fcn.00420580
add esp, 0xc
lea ecx, [ebp - 0x2e80]
call fcn.00401a90
xorps xmm0, xmm0
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x2e70]
movq qword [ebp - 0x2e78], xmm0
call fcn.004015d0
push 8
lea ecx, [ebp - 0x2e64]
mov byte [ebp - 4], 0x39
call fcn.004020d0
push 0x64e324
push str.ntdll.dll
lea ecx, [ebp - 0x2e64]
call fcn.00404840
lea ecx, [ebp - 0x2e64]
mov byte [ebp - 4], 0x3a
call fcn.00404820
test al, al
je 0x530764
mov eax, dword [ebp - 0x2f80]
mov ecx, eax
and ecx, 8
or ecx, 2
mov dword [ebp - 0x2eb4], ecx
test al, 2
jne 0x530511
or ecx, 0x10
mov dword [ebp - 0x2eb4], ecx
test al, 0x10
je 0x53051e
or ecx, 4
mov dword [ebp - 0x2eb4], ecx
push 8
push 0x64e340
lea ecx, [ebp - 0x1fb0]
call fcn.0051b710
push eax
lea ecx, [ebp - 0x2eb0]
call fcn.00404670
lea eax, [ebp - 0x2010]
mov dword [ebp - 0x2eac], 0
xorps xmm0, xmm0
mov dword [ebp - 0x2ea8], eax
mov eax, dword [ebp - 0x2e60]
lea ecx, [ebp - 0x2e80]
push 0x800
mov byte [ebp - 0x2ea4], 0
movlpd qword [ebp - 0x2ea0], xmm0
movlpd qword [ebp - 0x2e98], xmm0
movlpd qword [ebp - 0x2e90], xmm0
mov dword [ebp - 0x2e88], eax
mov dword [ebp - 0x2e84], 0x800
call fcn.00404060
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea eax, [ebp - 0x2278]
push dword [ebp - 0x2f94]
lea ecx, [ebp - 0x1fa0]
mov dword [ebp - 0x2e74], eax
push 0x655e70
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0x64e4b0
push 0xffffffffffffffb0
lea ecx, [esi + 0x14e0]
call fcn.004ee190
push 4
lea ecx, [ebp - 0x2e54]
call fcn.00401ed0
push 0
push 0
lea eax, [ebp - 0x2ec8]
push eax
push 0x48a410
push 0
push 0
call dword [0x5de380]
push eax
lea ecx, [ebp - 0x2e54]
call fcn.004015e0
mov byte [ebp - 4], 0x3b
xor edx, edx
mov ecx, dword [ebp - 0x2e54]
call fcn.00503650
test al, al
je 0x530682
mov esi, 1
nop dword [eax + eax]
cmp byte [edi], 0
movzx eax, byte [ebp - 0x2eb8]
cmovne eax, esi
push 0xa
mov byte [ebp - 0x2eb8], al
call dword [0x5de438]
mov ecx, dword [ebp - 0x2e54]
xor edx, edx
call fcn.00503650
test al, al
jne 0x530650
mov esi, dword [ebp - 0x2f90]
cmp byte [ebp - 0x2eb8], 0
mov ecx, 0x655f60
mov eax, 0x655f28
cmove eax, ecx
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.0051e0b0
push fcn.0051dfd0
push fcn.0051e180
push 2
push 0xc
lea eax, [ebp - 0x48]
push eax
call fcn.0041eeff
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x48]
push dword [ebp - 0x2e9c]
push dword [ebp - 0x2ea0]
call fcn.0051d120
push dword [ebp - 0x2e94]
lea ecx, [ebp - 0x3c]
push dword [ebp - 0x2e98]
call fcn.0051d120
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x655fb0
lea ecx, [ebp - 0x3c]
call fcn.0051dd30
push eax
push 0x656008
lea ecx, [ebp - 0x48]
call fcn.0051dd30
push eax
push 0x60477c
lea ecx, [ebp - 0x1fb0]
call fcn.0051c4c0
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0x656040
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
push fcn.0051dfd0
push 2
push 0xc
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x3b
push eax
call fcn.0041eb24
lea ecx, [ebp - 0x2e54]
call fcn.00401600
lea ecx, [ebp - 0x2e64]
call fcn.00403260
lea ecx, [ebp - 0x2ec8]
mov byte [ebp - 4], 0x1f
call fcn.00404700
mov eax, dword [ebp - 0x2fac]
test eax, 0x200
je 0x530aa3
lea ecx, [ebp - 0x2f50]
call fcn.00404750
mov eax, dword [ebp - 0x2f80]
lea ecx, [esi + 0x14e0]
push 0x6560e8
mov byte [ebp - 4], 0x3d
push 0xffffffffffffffb0
mov dword [ebp - 0x2f50], eax
call fcn.004ee190
push edi
push dword [esi + 0x1c]
mov ecx, esi
call fcn.005284d0
mov dword [ebp - 0x2f48], eax
mov dword [ebp - 0x2f44], edx
cmp eax, 0xffffffff
jne 0x5307e0
cmp edx, eax
je 0x530a61
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x656148
push 0x6561cc
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
mov eax, dword [ebp - 0x2ff8]
xorps xmm0, xmm0
mov dword [ebp - 0x2f20], eax
lea eax, [ebp - 0x2218]
push eax
movlpd qword [ebp - 0x2f40], xmm0
movlpd qword [ebp - 0x2f38], xmm0
movlpd qword [ebp - 0x2f30], xmm0
movlpd qword [ebp - 0x2f28], xmm0
call dword [0x5de2d4]
lea ecx, [ebp - 0x2218]
call fcn.0050c990
mov dword [ebp - 0x2f1c], eax
lea ecx, [ebp - 0x2130]
lea eax, [ebp - 0x22d8]
mov dword [ebp - 0x2f18], eax
lea eax, [ebp - 0x2010]
push 0xc
mov dword [ebp - 0x2f14], eax
call fcn.00401eb0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x65620c
lea ecx, [esi + 0x154]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2130]
call fcn.0051e0c0
push 0x20
lea ecx, [ebp - 0x2210]
mov byte [ebp - 4], 0x3e
call fcn.00401fb0
push 0
push 0x22
lea ecx, [ebp - 0x2130]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2210]
call fcn.0050c8c0
push dword [ebp - 0x2fb4]
lea eax, [ebp - 0x2210]
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x2f0c]
mov dword [ebp - 0x2f10], eax
call fcn.004046a0
push 0x656240
push 0
lea ecx, [esi + 0x14e0]
call fcn.004ee190
mov eax, dword [ebp - 0x2f80]
shr eax, 5
push edi
not al
and al, 1
mov ecx, esi
movzx eax, al
push eax
lea eax, [ebp - 0x2f50]
push eax
push dword [esi + 0x1c]
call fcn.00528730
push 0
push 0x656290
lea ecx, [ebp - 0x2010]
mov byte [ebp - 0x2f61], al
call fcn.0050b8e0
push 0
lea ecx, [ebp - 0x2210]
call fcn.0050b7a0
push 0
push 0x20
lea ecx, [ebp - 0x2130]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2210]
call fcn.0050c260
test eax, eax
je 0x530a20
push 0
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2210]
call fcn.0050c080
cmp eax, 2
jbe 0x530a20
cmp dword [ebp - 0x2f48], 0xffffffff
jne 0x5309c1
cmp dword [ebp - 0x2f44], 0xffffffff
je 0x530a4b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x656340
push 0x6563b0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0x656400
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
push 0
lea ecx, [ebp - 0x2210]
call fcn.0050b7a0
push 2
lea ecx, [ebp - 0x2130]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005c0360
cmp byte [ebp - 0x2f61], 0
jne 0x530a78
lea ecx, [ebp - 0x2210]
call fcn.00401f90
lea ecx, [ebp - 0x2130]
call fcn.0051dfd0
lea ecx, [ebp - 0x2f50]
call fcn.00404790
mov byte [ebp - 0x2f61], 2
jmp 0x531980
lea ecx, [ebp - 0x2210]
call fcn.00401f90
lea ecx, [ebp - 0x2130]
call fcn.0051dfd0
lea ecx, [ebp - 0x2f50]
mov byte [ebp - 4], 0x1f
call fcn.00404790
mov eax, dword [ebp - 0x2fac]
test eax, 0x400
je 0x531979
mov ecx, dword [ebp - 0x2fdc]
call fcn.0051aa10
cmp eax, 9
jle 0x531979
push 0xc
lea ecx, [ebp - 0x20ac]
call fcn.00401eb0
lea ecx, [ebp - 0x20ac]
call fcn.0051e180
push 0xc
lea ecx, [ebp - 0x209c]
mov byte [ebp - 4], 0x40
call fcn.00401eb0
lea ecx, [ebp - 0x209c]
call fcn.0051e180
push 0xc
lea ecx, [ebp - 0x2100]
mov byte [ebp - 4], 0x41
call fcn.00401eb0
lea ecx, [ebp - 0x2100]
call fcn.0051e180
lea ecx, [ebp - 0x1fc0]
mov byte [ebp - 4], 0x42
call fcn.0051dfa0
push 0x18
lea ecx, [ebp - 0x20d0]
call fcn.00401ee0
push 0
push 0x60477c
push dword [ebp - 0x2fdc]
lea ecx, [ebp - 0x20d0]
call fcn.0051b070
lea ecx, [ebp - 0x20d0]
mov byte [ebp - 4], 0x43
call fcn.0051afe0
cmp eax, 1
jbe 0x53194d
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
test eax, eax
je 0x53194d
xor esi, esi
xor edi, edi
nop word [eax + eax]
push esi
lea ecx, [ebp - 0x20d0]
call fcn.0051aff0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
test eax, eax
je 0x530c18
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.0051be70
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dfe0
cmp word [eax], 0x3c
jne 0x530bf9
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
dec eax
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.0051dfe0
cmp word [eax], 0x3e
jne 0x530bf9
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.0051e080
jmp 0x530c18
lea ecx, [ebp - 0x1fc0]
call fcn.0051df40
test eax, eax
je 0x530c18
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
test eax, eax
je 0x530c18
inc edi
lea ecx, [ebp - 0x20d0]
inc esi
call fcn.0051afe0
cmp esi, eax
jb 0x530b80
mov esi, dword [ebp - 0x2f90]
test edi, edi
mov edi, dword [ebp - 0x2fa0]
je 0x53194d
push 0x6564b0
push 0
lea ecx, [esi + 0x14e0]
call fcn.004ee190
lea ecx, [ebp - 0x20d0]
mov dword [ebp - 0x2f74], 0
call fcn.0051afe0
test eax, eax
je 0x53193b
mov dword [ebp - 0x2fa4], 0
nop dword [eax]
lea eax, [ebp - 0x1fc0]
push eax
lea ecx, [ebp - 0x20ac]
call fcn.0051e080
push dword [ebp - 0x2f74]
lea ecx, [ebp - 0x20d0]
call fcn.0051aff0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051e0b0
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.0051be70
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
test eax, eax
je 0x530d35
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dfe0
cmp word [eax], 0x3c
jne 0x530d35
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
dec eax
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.0051dfe0
cmp word [eax], 0x3e
jne 0x530d35
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.0051e080
push 0
push 1
push 1
push 0
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.0051c760
mov dword [ebp - 0x2f68], eax
jmp 0x530d3f
mov dword [ebp - 0x2f68], 0
push 0x656508
lea ecx, [ebp - 0x1fc0]
call fcn.0051e020
test al, al
je 0x530d60
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051d7b0
push 0x656508
lea ecx, [ebp - 0x1fc0]
call fcn.0051e060
test al, al
je 0x5310ab
cmp dword [ebp - 0x2f68], 0
je 0x530d98
push 0
push 0x656520
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
jmp 0x531737
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
cmp eax, 3
jle 0x531737
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051e080
push 1
lea ecx, [ebp - 0x1f94]
call fcn.0051dac0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x656548
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x65656c
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2fa4]
div ecx
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a0b
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esi + 0x154]
push 0x65658c
call fcn.0051dd30
push eax
push 0x60593c
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6565a8
push dword [esi + 0x24]
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 4
lea ecx, [ebp - 0x2e38]
call fcn.00401ed0
push 0
push 0
push dword [esi + 0x24]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov edx, eax
xor ecx, ecx
call fcn.0050abb0
push eax
lea ecx, [ebp - 0x2e38]
call fcn.004015e0
lea ecx, [ebp - 0x2e38]
mov byte [ebp - 4], 0x44
call fcn.00401650
test al, al
jne 0x531052
mov ecx, dword [ebp - 0x2e38]
xor edx, edx
call fcn.00503650
test al, al
je 0x530ef5
cmp byte [edi], 0
jne 0x5319e8
push 5
call dword [0x5de438]
mov ecx, dword [ebp - 0x2e38]
xor edx, edx
call fcn.00503650
test al, al
jne 0x530ed3
lea eax, [ebp - 0x20a0]
mov dword [ebp - 0x20a0], 0
push eax
push dword [ebp - 0x2e38]
call dword [0x5de3d0]
cmp dword [ebp - 0x20a0], 0
jne 0x531052
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6565cc
lea ecx, [esi + 0x154]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 0x20
lea ecx, [ebp - 0x2270]
call fcn.00401fb0
push 0
push 0x20
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2270]
call fcn.0050c8c0
push 0
lea eax, [ebp - 0x1f94]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [ebp - 0x2270]
call fcn.0050c080
push 0
lea ecx, [ebp - 0x2270]
call fcn.0050b7a0
push 2
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005c0360
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6552ac
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6565e0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 8
push 0
push 0x5fe50c
push 0x656620
lea ecx, [ebp - 0x1f94]
call fcn.0051b3f0
lea eax, [ebp - 0x1f94]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0
push 0x60477c
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x2270]
call fcn.00401f90
lea ecx, [ebp - 0x2e38]
mov byte [ebp - 4], 0x43
call fcn.00401600
jmp 0x531737
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x656648
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x656698
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea ecx, [ebp - 0x2e38]
mov byte [ebp - 4], 0x43
call fcn.00401600
jmp 0x531737
push 0x6566a8
lea ecx, [ebp - 0x1fc0]
call fcn.0051e060
test al, al
je 0x531456
cmp dword [ebp - 0x2f68], 0
je 0x531114
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x6566b8
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
jmp 0x531737
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
cmp eax, 1
jle 0x531737
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x634bec
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x656744
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2fa4]
div ecx
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a0b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x656774
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x65677c
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
push 0xc
lea ecx, [ebp - 0x2158]
call fcn.00401eb0
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2158]
call fcn.0051e150
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe654
push 0x5c
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x46
call fcn.0051be20
mov ecx, eax
call fcn.0051bdc0
mov ecx, eax
call fcn.0051c4c0
push 0x260
lea ecx, [ebp - 0x29f8]
call fcn.00401f00
lea ecx, [ebp - 0x29f8]
call fcn.004016b0
push 1
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x47
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x29f8]
call fcn.00401830
test al, al
je 0x531425
cmp byte [edi], 0
jne 0x5319f5
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x29f8]
call fcn.00401890
push eax
push 0x5fe504
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
push 0x10
lea ecx, [ebp - 0x29f8]
call fcn.00401880
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x531312
push 1
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.004845e0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x5319f5
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6555c8
jmp 0x5313c8
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x531410
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
mov ecx, eax
call fcn.00508fa0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
test al, al
je 0x531410
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1f94]
call fcn.0051dd30
push eax
push 0x6567a8
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
cmp byte [edi], 0
jne 0x5319f5
lea ecx, [ebp - 0x29f8]
call fcn.004017e0
test al, al
jne 0x531271
jmp 0x531437
push 0
push 0x6567d0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x29f8]
call fcn.00401730
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x43
call fcn.0051dfd0
jmp 0x531737
push 0x656830
lea ecx, [ebp - 0x1fc0]
call fcn.0051e060
test al, al
je 0x531608
cmp dword [ebp - 0x2f68], 0
je 0x5314bf
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push dword [ebp - 0x2fa8]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f94]
push 0x656840
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
jmp 0x531737
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
cmp eax, 3
jle 0x531737
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x628fc4
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6568c0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea ecx, [ebp - 0x1fa0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2fa4]
div ecx
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a0b
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
mov eax, dword [ebp - 0x2f80]
lea ecx, [ebp - 0x1fb0]
and eax, 0x18
push eax
call fcn.0051dd30
push eax
mov ecx, esi
call fcn.005297d0
push 4
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
mov ecx, eax
call fcn.00508fa0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051cba0
push 0
push 0
push 0
push 0
push 0x60477c
lea ecx, [ebp - 0x1fe4]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2024]
call fcn.0051dd30
push eax
push 0x623a58
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
push 0x6567a8
lea ecx, [ebp - 0x1fa0]
call fcn.0051dda0
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
jmp 0x531737
push 0x6568d8
lea ecx, [ebp - 0x1fc0]
call fcn.0051e060
test al, al
je 0x531737
cmp dword [ebp - 0x2f68], 0
je 0x5316c9
push 1
push 0x6568f0
lea ecx, [ebp - 0x1fa0]
call fcn.0051de00
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
lea ecx, [ebp - 0x1fc0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20ac]
call fcn.0051e020
test al, al
je 0x531737
push 1
push 0x609ae0
lea ecx, [ebp - 0x1fa0]
call fcn.0051de00
lea ecx, [ebp - 0x1fa0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2fa4]
div ecx
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
lea ecx, [ebp - 0x209c]
call fcn.0051dfa0
lea ecx, [ebp - 0x2100]
call fcn.0051dfa0
jmp 0x531737
lea ecx, [ebp - 0x1fb0]
call fcn.0051df40
cmp eax, 3
jle 0x531737
push 0
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2fa4]
div ecx
lea ecx, [esi + 0x14e0]
push eax
call fcn.004ee190
cmp byte [edi], 0
jne 0x531a0b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x604a10
lea ecx, [ebp - 0x1fb0]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x209c]
call fcn.0051c4c0
lea ecx, [ebp - 0x209c]
call fcn.0051df40
cmp eax, 4
jle 0x531917
push 0x6568d8
lea ecx, [ebp - 0x20ac]
call fcn.0051e060
test al, al
je 0x531917
lea ecx, [ebp - 0x20ac]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.0051e020
test al, al
jne 0x531796
lea ecx, [ebp - 0x20d0]
call fcn.0051afe0
dec eax
cmp dword [ebp - 0x2f74], eax
jne 0x531917
mov ecx, esi
call fcn.00461a00
or eax, 8
lea ecx, [ebp - 0x2100]
push eax
push 0
push 0
push 0xffff
call fcn.0051d530
push eax
lea ecx, [ebp - 0x209c]
call fcn.0051dd30
mov edx, 0x615848
mov ecx, eax
call fcn.004e1f20
push 0x18
lea ecx, [ebp - 0x2230]
call fcn.00401ee0
lea ecx, [ebp - 0x2230]
call fcn.0051b0f0
push 0x18
lea ecx, [ebp - 0x21b8]
mov byte [ebp - 4], 0x48
call fcn.00401ee0
lea ecx, [ebp - 0x21b8]
call fcn.0051b0f0
push 0
push 0x604a10
lea ecx, [ebp - 0x209c]
mov byte [ebp - 4], 0x49
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x2230]
call fcn.0051ae40
push 0
push 0x604a10
lea ecx, [ebp - 0x2100]
call fcn.0051dd30
push eax
lea ecx, [ebp - 0x21b8]
call fcn.0051ae40
lea ecx, [ebp - 0x2230]
call fcn.0051afe0
lea ecx, [ebp - 0x21b8]
mov dword [ebp - 0x2f78], eax
call fcn.0051afe0
cmp eax, dword [ebp - 0x2f78]
jae 0x531878
lea ecx, [ebp - 0x21b8]
call fcn.0051afe0
mov dword [ebp - 0x2f78], eax
jmp 0x53187e
mov eax, dword [ebp - 0x2f78]
mov dword [ebp - 0x2fb4], 0
test eax, eax
je 0x5318fd
mov edi, dword [ebp - 0x2fb4]
mov esi, dword [ebp - 0x2f78]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x60477c
push edi
lea ecx, [ebp - 0x21b8]
call fcn.0051aff0
push eax
push 0x623a58
push edi
lea ecx, [ebp - 0x2230]
call fcn.0051aff0
push eax
push 0x65698c
lea ecx, [ebp - 0x1f94]
call fcn.0051dda0
lea eax, [ebp - 0x1f94]
push eax
lea ecx, [ebp - 0x2010]
call fcn.0050bb00
inc edi
cmp edi, esi
jb 0x531898
mov edi, dword [ebp - 0x2fa0]
mov esi, dword [ebp - 0x2f90]
lea ecx, [ebp - 0x21b8]
call fcn.0051b050
lea ecx, [ebp - 0x2230]
mov byte [ebp - 4], 0x43
call fcn.0051b050
inc dword [ebp - 0x2f74]
lea ecx, [ebp - 0x20d0]
add dword [ebp - 0x2fa4], 0x64
call fcn.0051afe0
cmp dword [ebp - 0x2f74], eax
jb 0x530c80
push 0
push 0x6569b0
lea ecx, [ebp - 0x2010]
call fcn.0050b8e0
lea ecx, [ebp - 0x20d0]
call fcn.0051b050
lea ecx, [ebp - 0x2100]
call fcn.0051dfd0
lea ecx, [ebp - 0x209c]
call fcn.0051dfd0
lea ecx, [ebp - 0x20ac]
call fcn.0051dfd0
mov byte [ebp - 0x2f61], 1
lea ecx, [ebp - 0x2e44]
call fcn.00401b50
lea ecx, [ebp - 0x2164]
call fcn.0051dfd0
lea ecx, [ebp - 0x2040]
call fcn.0051dfd0
lea ecx, [ebp - 0x2070]
call fcn.0051dfd0
lea ecx, [ebp - 0x2e2c]
call fcn.00518890
lea ecx, [ebp - 0x2018]
call fcn.004038f0
lea ecx, [ebp - 0x2084]
call fcn.004038f0
lea ecx, [ebp - 0x2058]
call fcn.004038f0
lea ecx, [ebp - 0x2030]
call fcn.004038f0
jmp 0x52b399
lea ecx, [ebp - 0x2e38]
call fcn.00401600
jmp 0x531a0b
lea ecx, [ebp - 0x29f8]
call fcn.00401730
lea ecx, [ebp - 0x2158]
call fcn.0051dfd0
lea ecx, [ebp - 0x20d0]
call fcn.0051b050
lea ecx, [ebp - 0x2100]
call fcn.0051dfd0
lea ecx, [ebp - 0x209c]
call fcn.0051dfd0
lea ecx, [ebp - 0x20ac]
call fcn.0051dfd0
mov byte [ebp - 0x2f61], 2
jmp 0x531980