Function at 0x5216da
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 0x5c5e3c
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x3020
call fcn.0041ef10
mov eax, dword [0x6c21e4]
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 - 0x2f78], esi
mov edi, dword [ebx + 8]
xor ecx, ecx
call fcn.0050e640
test eax, eax
je 0x521014
push eax
call fcn.0041e876
add esp, 4
mov eax, dword [edi + 0xc]
xorps xmm0, xmm0
mov ecx, dword [edi + 8]
mov dword [ebp - 0x2f9c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x2fc4], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x2f94], eax
mov eax, dword [edi + 0x18]
push 1
mov dword [ebp - 0x2f98], ecx
mov dword [ebp - 0x2f68], eax
mov eax, dword [edi + 0x1c]
push ecx
lea ecx, [ebp - 0x2124]
mov dword [ebp - 0x2fe0], eax
movq qword [ebp - 0x2124], xmm0
mov dword [ebp - 0x211c], 0
call fcn.00516e80
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x1fa0]
xorps xmm0, xmm0
mov dword [ebp - 0x1f98], 0
movq qword [ebp - 0x1fa0], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1fb0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fa8], 0
movq qword [ebp - 0x1fb0], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1f94]
xorps xmm0, xmm0
mov dword [ebp - 0x1f8c], 0
movq qword [ebp - 0x1f94], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2024]
xorps xmm0, xmm0
mov dword [ebp - 0x201c], 0
movq qword [ebp - 0x2024], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x1ff0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fe8], 0
movq qword [ebp - 0x1ff0], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x1fc0]
xorps xmm0, xmm0
mov dword [ebp - 0x1fb8], 0
movq qword [ebp - 0x1fc0], xmm0
call fcn.00516ef0
lea ecx, [ebp - 0x2124]
mov byte [ebp - 4], 6
call fcn.00516cc0
mov ecx, eax
cmp ecx, 7
jl 0x52117a
mov eax, dword [ebp - 0x2f98]
add eax, 0xfffffff8
push 0
lea edx, [eax + ecx*2]
mov ecx, 0x5fe8ac
call fcn.00513700
test eax, eax
je 0x5211a0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fe8ac
lea ecx, [ebp - 0x2124]
call fcn.00515270
xorps xmm0, xmm0
lea ecx, [ebp - 0x2124]
push 0
push 0x2a
movups xmmword [ebp - 0x2010], xmm0
movups xmmword [ebp - 0x2000], xmm0
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2010]
call fcn.00505a10
lea ecx, [ebp - 0x2010]
mov byte [ebp - 4], 7
call fcn.00505900
test eax, eax
jne 0x5211ea
mov byte [ebp - 0x2f49], al
jmp 0x52299c
lea eax, [esi + 0x14b0]
push 0x63db08
push 0
mov ecx, eax
mov dword [ebp - 0x2f8c], eax
call fcn.004e73c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63db40
lea ecx, [esi + 0x13dc]
call fcn.00516ab0
push eax
push 0x63db84
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov ecx, esi
call fcn.0044b240
test al, al
je 0x521407
push 0
push 0x63dbc0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
xorps xmm0, xmm0
mov dword [ebp - 0x2168], 0
lea ecx, [ebp - 0x2170]
movq qword [ebp - 0x2170], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x20e8]
xorps xmm0, xmm0
mov dword [ebp - 0x20e0], 0
movq qword [ebp - 0x20e8], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x20dc]
xorps xmm0, xmm0
mov dword [ebp - 0x20d4], 0
movq qword [ebp - 0x20dc], xmm0
call fcn.00516ef0
push 0
push 0
push 0x9470
lea ecx, [ebp - 0x2170]
mov byte [ebp - 4], 0xa
call fcn.005162e0
lea ecx, [esi + 0x190]
mov dword [ebp - 0x2e44], eax
call fcn.00516ab0
push eax
push 0x9470
push dword [ebp - 0x2e44]
push 0x6324a8
call dword [0x5cd488]
mov ecx, dword [ebp - 0x2e44]
lea eax, [ebp - 0x20dc]
push eax
lea edx, [ebp - 0x20e8]
call fcn.004fa900
test al, al
je 0x5213d0
nop dword [eax]
nop word [eax + eax]
push 0x6325b0
lea ecx, [ebp - 0x20e8]
call fcn.00516de0
test al, al
je 0x521361
mov dl, 1
lea ecx, [ebp - 0x20dc]
call fcn.0050a970
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x20dc]
call fcn.00516ab0
push eax
push 0x63c284
lea ecx, [ebp - 0x20e8]
call fcn.00516ab0
push eax
push 0x63dbec
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea eax, [ebp - 0x20dc]
push eax
lea edx, [ebp - 0x20e8]
lea ecx, [ebp - 0x2e44]
call fcn.004fa970
test al, al
jne 0x521340
push 0
push 0x5f36f4
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x20dc]
call fcn.00516d50
lea ecx, [ebp - 0x20e8]
call fcn.00516d50
lea ecx, [ebp - 0x2170]
mov byte [ebp - 4], 7
call fcn.00516d50
add edi, 4
mov dword [ebp - 0x2f88], edi
cmp byte [edi], 0
je 0x521421
mov byte [ebp - 0x2f49], 2
jmp 0x52299c
push 0
xorps xmm0, xmm0
mov dword [ebp - 0x2044], 0
push 0x1a
lea ecx, [ebp - 0x204c]
movq qword [ebp - 0x204c], xmm0
call fcn.004040b0
mov byte [ebp - 4], 0xb
mov ecx, 1
mov eax, dword [ebp - 0x204c]
test eax, eax
mov dword [ebp - 0x2f5c], 1
cmove eax, ecx
mov ecx, dword [ebp - 0x2044]
mov dword [ebp - 0x204c], eax
lea eax, [esi + 0x1c]
push dword [eax]
mov dword [ebp - 0x2f98], eax
call fcn.00516e30
push 0
push 0
push 0x800
lea ecx, [ebp - 0x1fb0]
call fcn.005162e0
push eax
push 0x800
call dword [0x5cd3cc]
test eax, eax
je 0x5216ab
xorps xmm0, xmm0
mov dword [ebp - 0x30], 0
lea ecx, [ebp - 0x1fb0]
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x28], xmm0
call fcn.00516ab0
mov dword [ebp - 0x2f54], eax
cmp word [eax], 0
je 0x521699
mov dword [ebp - 0x2f7c], 0xc
mov esi, 1
mov edi, eax
push edi
call dword [0x5cd3e0]
cmp eax, 3
jne 0x52165c
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
push edi
call dword [0x5cd420]
cmp dword [ebp - 0x204c], esi
ja 0x52151c
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f7c]
add ecx, dword [ebp - 0x2044]
push 1
push edi
call fcn.00516b80
cmp dword [ebp - 0x204c], esi
ja 0x521541
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f7c]
add ecx, dword [ebp - 0x2044]
push 1
call fcn.00515870
cmp dword [ebp - 0x204c], esi
ja 0x521565
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov eax, dword [ebp - 0x2f98]
mov ecx, dword [ebp - 0x2f7c]
add ecx, dword [ebp - 0x2044]
push dword [eax]
call fcn.00516de0
test al, al
jne 0x52165c
push 4
push 0
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x20]
call fcn.00515950
cmp dword [ebp - 0x204c], esi
ja 0x5215ac
lea eax, [esi + 1]
mov dword [ebp - 0x204c], eax
mov esi, dword [ebp - 0x2f7c]
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.00516ab0
push eax
push 0x5effa0
mov ecx, esi
call fcn.00516ab0
push eax
push 0x63dbfc
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 4
push 0
push dword [ebp - 0x24]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x28]
call fcn.00515950
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.00516ab0
push eax
push 0x6325c8
lea ecx, [ebp - 0x1fa0]
call fcn.00515270
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov esi, dword [ebp - 0x2f5c]
inc esi
add dword [ebp - 0x2f7c], 0xc
mov dword [ebp - 0x2f5c], esi
mov eax, dword [ebp - 0x204c]
cmp eax, esi
ja 0x521676
push 0
add eax, eax
lea ecx, [ebp - 0x204c]
push eax
call fcn.00403ef0
mov ecx, edi
call fcn.00513870
lea edi, [edi + eax*2]
add edi, 2
cmp word [edi], 0
jne 0x5214e8
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
push 0
push 0x5f36f4
lea ecx, [ebp - 0x2010]
call fcn.00504a30
cmp byte [edi], 0
je 0x5216bc
mov byte [ebp - 0x2f49], 2
jmp 0x522991
call fcn.0048b120
push 0x30
lea eax, [ebp - 0x21c8]
push 0
push eax
call fcn.00420570
add esp, 0xc
lea ecx, [ebp - 0x21c8]
push 1
push 0x60de34
call fcn.00488220
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2010]
cmp byte [ebp - 0x21a8], 0
push 0
je 0x521aea
push 0x63dc20
call fcn.00504a30
push 0x63dc50
lea ecx, [ebp - 0x21c8]
call fcn.00488070
test eax, eax
je 0x521829
lea ecx, [ebp - 0x21c8]
call fcn.00487f80
test eax, eax
je 0x521829
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5fa110
lea ecx, [ebp - 0x21c8]
call fcn.00487e10
push eax
push 0x63dcac
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63dcd0
lea ecx, [ebp - 0x21c8]
call fcn.00487e10
push eax
push 0x63dce8
lea ecx, [ebp - 0x1fa0]
call fcn.00515270
push dword [esi + 0xd0]
call dword [0x5cda98]
lea eax, [ebp - 0x2f48]
push eax
push 0
push 0x200
push dword [esi + 0xd4]
call dword [0x5cda9c]
movsd xmm1, qword [ebp - 0x2f40]
lea ecx, [ebp - 0x1fb0]
push 2
call fcn.00515fc0
mov ecx, eax
call fcn.00514730
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63dd14
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x63dd20
lea ecx, [ebp - 0x1fa0]
call fcn.00515270
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0x63dd60
lea ecx, [ebp - 0x21c8]
call fcn.00488070
test eax, eax
je 0x521af4
lea ecx, [ebp - 0x21c8]
call fcn.00487f80
test eax, eax
je 0x521af4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63de90
lea ecx, [ebp - 0x21c8]
call fcn.00487e10
push eax
push 0x63deac
lea ecx, [esi + 0x220]
call fcn.00516ab0
push eax
push 0x63dedc
lea ecx, [esi + 0x1fc]
call fcn.00516ab0
push eax
push 0x63df08
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 4
push 0
push 0x63df38
lea ecx, [ebp - 0x21c8]
call fcn.00487dc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515950
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.00516ab0
push eax
push 0x63df68
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 4
push 0
push 0x63dfac
lea ecx, [ebp - 0x21c8]
call fcn.00487dc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed518
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x63dfd4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 4
push 0
push 0x63dfec
lea ecx, [ebp - 0x21c8]
call fcn.00487dc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515950
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.00516ab0
push eax
push 0x63e020
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 4
push 0
push 0x63e064
lea ecx, [ebp - 0x21c8]
call fcn.00487dc0
push edx
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed518
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x63dfd4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 1
push 0
push 0x63e088
lea ecx, [ebp - 0x21c8]
call fcn.00487e10
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516b80
mov edx, 0x13
lea ecx, [ebp - 0x1fb0]
call fcn.0048aca0
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.00516ab0
push eax
push 0x63e0a8
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0x43
call dword [0x5cd7fc]
lea ecx, [ebp - 0x2010]
push 0
cmp eax, 1
jne 0x521ad7
push 0x63e0e0
jmp 0x521aef
cmp eax, 2
jne 0x521ae3
push 0x63e130
jmp 0x521aef
push 0x63e190
jmp 0x521aef
push 0x63e1d0
call fcn.00504a30
cmp byte [edi], 0
je 0x521b05
mov byte [ebp - 0x2f49], 2
jmp 0x522986
push 0
push 0x20019
push 0x628e10
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x1fa4], 0
call fcn.00511740
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1fb4]
mov dword [ebp - 0x1fb4], 0
call fcn.00511760
lea eax, [ebp - 0x1fb0]
mov byte [ebp - 4], 0xe
push eax
push 0x628dfc
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x63e20c
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0x63e240
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f68]
push 0
test al, 4
je 0x521bc4
push 0x63e270
jmp 0x521bdf
test al, 1
je 0x521bcf
push 0x63e2c0
jmp 0x521bdf
test al, 2
je 0x521bda
push 0x63e300
jmp 0x521bdf
push 0x63e340
lea ecx, [ebp - 0x2010]
call fcn.00504a30
test byte [ebp - 0x2f68], 0xc
lea ecx, [ebp - 0x2010]
push 0
je 0x521c02
push 0x63e370
jmp 0x521c07
push 0x63e3a0
call fcn.00504a30
push 0
push 0x63e3e0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f68]
mov ecx, eax
and ecx, 0x40
mov dword [ebp - 0x2f70], ecx
je 0x521c49
push 0
push 0x63e410
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f68]
and eax, 0x10
lea ecx, [ebp - 0x2010]
mov dword [ebp - 0x2f54], eax
push 0
je 0x521c63
push 0x63e440
jmp 0x521c68
push 0x63e470
call fcn.00504a30
test byte [ebp - 0x2f68], 0x20
lea ecx, [ebp - 0x2010]
push 0
je 0x521c85
push 0x63e4b0
jmp 0x521c8a
push 0x63e4f0
call fcn.00504a30
push 0
push 0x63e540
lea ecx, [ebp - 0x2010]
call fcn.00504a30
test byte [ebp - 0x2f68], 8
mov ecx, 0x63e604
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, 0x63e5e0
mov edx, 0x5ed51c
cmove eax, ecx
mov ecx, 0x63e620
cmp dword [ebp - 0x2f54], 0
push 0x5f36f4
cmove ecx, edx
mov dword [ebp - 0x2f90], eax
push eax
push ecx
push 0x63e638
mov dword [ebp - 0x2f7c], ecx
lea ecx, [ebp - 0x1fa0]
push 0x63e6a8
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
je 0x521d22
mov byte [ebp - 0x2f49], 2
jmp 0x522970
xorps xmm0, xmm0
mov dword [ebp - 0x1fc4], 0
lea ecx, [ebp - 0x1fcc]
movq qword [ebp - 0x1fcc], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1fd8]
xorps xmm0, xmm0
mov dword [ebp - 0x1fd0], 0
movq qword [ebp - 0x1fd8], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x1fe4]
xorps xmm0, xmm0
mov dword [ebp - 0x1fdc], 0
movq qword [ebp - 0x1fe4], xmm0
call fcn.00516ef0
cmp dword [ebp - 0x2f5c], 0
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x2f50], 0
jbe 0x521fcf
xor ecx, ecx
xor edi, edi
mov dword [ebp - 0x2f60], ecx
nop
cmp dword [ebp - 0x204c], edi
ja 0x521dc1
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 0x63e728
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516b20
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
call dword [0x5cd624]
test eax, eax
je 0x521fa3
push 0x800
push 0
push str.Open
push 0x63e744
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00515c20
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
jne 0x521fa3
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x521ebd
push 2
push 2
push 1
push 1
push 0x5f0150
lea ecx, [ebp - 0x1f94]
call fcn.00515510
test eax, eax
jne 0x521ebd
cmp dword [ebp - 0x204c], edi
ja 0x521e87
lea eax, [edi + 1]
mov dword [ebp - 0x204c], eax
mov ecx, dword [ebp - 0x2f60]
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 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
call dword [0x5cd624]
test eax, eax
jne 0x521eee
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x521fa3
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x63e754
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f50]
inc eax
mov dword [ebp - 0x2f50], eax
jmp 0x521fa9
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f60]
inc edi
add ecx, 0xc
mov dword [ebp - 0x2f60], ecx
cmp edi, dword [ebp - 0x2f5c]
jb 0x521db0
mov edi, dword [ebp - 0x2f88]
test eax, eax
jne 0x521fe1
push 0
push 0x63e780
lea ecx, [ebp - 0x2010]
call fcn.00504a30
push 0
push 0x63e7f0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
cmp byte [edi], 0
jne 0x522948
mov dword [ebp - 0x2fbc], str..exe
xor esi, esi
mov dword [ebp - 0x2fb8], str..msi
mov dword [ebp - 0x2fb4], str..reg
mov dword [ebp - 0x2fb0], str..bat
mov dword [ebp - 0x2fac], str..cmd
mov dword [ebp - 0x2fa8], str..com
mov dword [ebp - 0x2fa4], 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 - 0x2fbc]
lea ecx, [ebp - 0x1ff0]
push str.HKCR_
call fcn.00516b20
lea eax, [ebp - 0x1fb0]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
lea ecx, [ebp - 0x1fb0]
call fcn.005167b0
test al, al
je 0x5220b1
push 0x612550
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x612590
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push str.HKCR_
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x522126
push 0x612570
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp + esi*4 - 0x2fbc]
lea ecx, [ebp - 0x1fa0]
push 0x63e89c
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
inc esi
cmp esi, 7
jl 0x522044
push 0
push 0x63e8d0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov edx, dword [ebp - 0x2f94]
mov esi, dword [ebp - 0x2f78]
mov dword [ebp - 0x2f58], 0
mov dword [ebp - 0x2f84], 0x64
test edx, edx
je 0x522231
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 - 0x2f54], eax
cmp eax, 1
jbe 0x522231
xor edx, edx
mov eax, 0x64
div dword [ebp - 0x2f54]
mov edx, dword [ebp - 0x2f94]
mov dword [ebp - 0x2f84], eax
test dl, 1
je 0x522851
push 0x63e980
push 0
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x522948
lea eax, [ebp - 0x2034]
mov dword [ebp - 0x2034], 0
push eax
push 0x1f40
lea eax, [ebp - 0x1f88]
push eax
call dword [0x5cd580]
test eax, eax
je 0x52245e
mov eax, dword [ebp - 0x2034]
lea ecx, [ebp - 0x2024]
shr eax, 2
push eax
mov dword [ebp - 0x2034], eax
call fcn.00515cd0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f7c]
push 0x63e9c0
call fcn.00516ab0
push eax
push 0x63ea3c
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0
push 0x800
lea ecx, [ebp - 0x1f94]
call fcn.005162e0
cmp dword [ebp - 0x2034], 0
mov dword [ebp - 0x2f50], 0
jbe 0x522439
cmp byte [edi], 0
jne 0x522948
lea ecx, [ebp - 0x1f94]
call fcn.00516ca0
push 0x800
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov edx, eax
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp + eax*4 - 0x1f88]
call fcn.004fe1f0
test al, al
je 0x522420
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x522420
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63ea70
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f84]
lea ecx, [esi + 0x14b0]
cdq
sub eax, edx
xor edx, edx
sar eax, 1
imul eax, dword [ebp - 0x2f50]
push 0
div dword [ebp - 0x2034]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x522948
mov eax, dword [ebp - 0x2f50]
inc eax
mov dword [ebp - 0x2f50], eax
cmp eax, dword [ebp - 0x2034]
jb 0x522316
push 0
push 0x63eaa0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f84]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x2f58], eax
jmp 0x522460
xor eax, eax
cmp dword [ebp - 0x2034], 0
je 0x522837
mov ecx, dword [ebp - 0x2f8c]
push 0x63eb4c
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x522948
xor esi, esi
mov dword [ebp - 0x2f64], 0x7d0
push esi
xorps xmm0, xmm0
mov dword [ebp - 0x2f6c], esi
push 0x7d0
lea ecx, [ebp - 0x2064]
movq qword [ebp - 0x2064], xmm0
mov dword [ebp - 0x205c], esi
call fcn.004040b0
mov dword [ebp - 0x2e24], 0xffffffff
xor ecx, ecx
mov byte [ebp - 4], 0x13
mov dword [ebp - 0x2e08], 0x428
mov dword [ebp - 0x2f80], ecx
cmp dword [ebp - 0x2034], ecx
jbe 0x522662
cmp byte [edi], 0
jne 0x52292c
push dword [ebp + ecx*4 - 0x1f88]
push 0x18
call dword [0x5cd450]
push eax
lea ecx, [ebp - 0x2e24]
call fcn.00401560
mov eax, dword [ebp - 0x2e24]
cmp eax, 0xffffffff
je 0x522649
test eax, eax
je 0x522649
lea ecx, [ebp - 0x2e08]
push ecx
push eax
call dword [0x5cd370]
test eax, eax
je 0x522649
lea eax, [ebp - 0x2e08]
push eax
push dword [ebp - 0x2e24]
call dword [0x5cd330]
test eax, eax
je 0x522649
mov edi, dword [ebp - 0x2f64]
lea ecx, [esi + esi*2]
shl ecx, 2
mov dword [ebp - 0x2f50], ecx
test esi, esi
je 0x5225cb
xor esi, esi
cmp dword [ebp - 0x2f6c], esi
jbe 0x5225c5
xor ecx, ecx
mov dword [ebp - 0x2f64], ecx
nop dword [eax + eax]
cmp dword [ebp - 0x2064], esi
ja 0x522591
lea eax, [esi + 1]
mov dword [ebp - 0x2064], eax
add ecx, dword [ebp - 0x205c]
lea eax, [ebp - 0x2be8]
push eax
call fcn.00516de0
test al, al
jne 0x522616
mov ecx, dword [ebp - 0x2f64]
inc esi
add ecx, 0xc
mov dword [ebp - 0x2f64], ecx
cmp esi, dword [ebp - 0x2f6c]
jb 0x522580
mov ecx, dword [ebp - 0x2f50]
mov esi, dword [ebp - 0x2f6c]
cmp dword [ebp - 0x2064], esi
ja 0x5225dc
lea eax, [esi + 1]
mov dword [ebp - 0x2064], eax
add ecx, dword [ebp - 0x205c]
lea eax, [ebp - 0x2be8]
push eax
call fcn.00516e30
add dword [ebp - 0x2f50], 0xc
inc esi
mov dword [ebp - 0x2f6c], esi
cmp esi, edi
jb 0x52261c
add edi, 0x3e8
lea ecx, [ebp - 0x2064]
push 0
push edi
call fcn.00403ef0
jmp 0x52261c
mov esi, dword [ebp - 0x2f6c]
lea eax, [ebp - 0x2e08]
push eax
push dword [ebp - 0x2e24]
call dword [0x5cd330]
mov ecx, dword [ebp - 0x2f50]
test eax, eax
jne 0x522565
mov dword [ebp - 0x2f64], edi
mov edi, dword [ebp - 0x2f88]
mov ecx, dword [ebp - 0x2f80]
inc ecx
mov dword [ebp - 0x2f80], ecx
cmp ecx, dword [ebp - 0x2034]
jb 0x5224e7
push esi
lea ecx, [ebp - 0x2024]
call fcn.00515d60
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f7c]
push 0x63eb88
call fcn.00516ab0
push eax
push 0x63ebfc
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
xor eax, eax
mov dword [ebp - 0x2f50], eax
test esi, esi
je 0x522805
xor ecx, ecx
mov dword [ebp - 0x2f60], ecx
cmp byte [edi], 0
jne 0x52292c
cmp dword [ebp - 0x2064], eax
ja 0x5226ee
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 - 0x2f68]
call fcn.00516ab0
mov ecx, dword [ebp - 0x2f78]
push eax
call fcn.00520d90
test al, al
je 0x5227e1
mov eax, dword [ebp - 0x2f50]
cmp dword [ebp - 0x2064], eax
ja 0x52273d
inc eax
mov dword [ebp - 0x2064], eax
mov esi, dword [ebp - 0x2f60]
lea ecx, [ebp - 0x1fe4]
add esi, dword [ebp - 0x205c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00516ab0
push eax
push 0x63ec2c
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f84]
mov esi, dword [ebp - 0x2f6c]
cdq
sub eax, edx
mov ecx, dword [ebp - 0x2f8c]
sar eax, 1
xor edx, edx
imul eax, dword [ebp - 0x2f50]
push 0
div esi
add eax, dword [ebp - 0x2f58]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x52292c
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f60]
inc eax
add ecx, 0xc
mov dword [ebp - 0x2f50], eax
mov dword [ebp - 0x2f60], ecx
cmp eax, esi
jb 0x5226d6
push 0
push 0x63ec60
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x2e24]
call fcn.00401540
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x205c]
test ecx, ecx
je 0x522837
push 3
call fcn.00401e50
mov eax, dword [ebp - 0x2f84]
mov ecx, dword [ebp - 0x2f8c]
push 0
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
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 - 0x2f70], 0
mov byte [ebp - 4], 0x16
je 0x5228c6
push 0
lea eax, [ebp - 0x2030]
push eax
lea edx, [ebp - 0x2084]
lea ecx, [ebp - 0x2058]
call fcn.004cf060
mov dword [ebp - 0x2f74], eax
test eax, eax
jne 0x522a1a
and dword [ebp - 0x2f68], 0xffffffbf
mov esi, dword [ebp - 0x2f78]
lea ecx, [ebp - 0x2030]
mov dword [ebp - 0x2f74], 1
lea eax, [esi + 0x220]
push eax
push 1
call fcn.00403550
mov ecx, eax
call fcn.00516e00
lea eax, [esi + 0x22c]
push eax
push 1
lea ecx, [ebp - 0x2058]
call fcn.00403550
mov ecx, eax
call fcn.00516e00
lea eax, [esi + 0x238]
push eax
push 1
lea ecx, [ebp - 0x2084]
call fcn.00403550
mov ecx, eax
call fcn.00516e00
jmp 0x522a20
lea ecx, [ebp - 0x2e24]
call fcn.00401540
mov ecx, dword [ebp - 0x205c]
test ecx, ecx
je 0x522948
push 3
call fcn.00401e50
mov byte [ebp - 0x2f49], 2
lea ecx, [ebp - 0x1fe4]
call fcn.00516d50
lea ecx, [ebp - 0x1fd8]
call fcn.00516d50
lea ecx, [ebp - 0x1fcc]
call fcn.00516d50
lea ecx, [ebp - 0x1fb4]
call fcn.005116a0
lea ecx, [ebp - 0x1fa4]
call fcn.005116a0
lea ecx, [ebp - 0x21c8]
call fcn.00402950
lea ecx, [ebp - 0x204c]
call fcn.00404040
lea ecx, [ebp - 0x2010]
call fcn.00401df0
lea ecx, [ebp - 0x1fc0]
call fcn.00516d50
lea ecx, [ebp - 0x1ff0]
call fcn.00516d50
lea ecx, [ebp - 0x2024]
call fcn.00516d50
lea ecx, [ebp - 0x1f94]
call fcn.00516d50
lea ecx, [ebp - 0x1fb0]
call fcn.00516d50
lea ecx, [ebp - 0x1fa0]
call fcn.00516d50
lea ecx, [ebp - 0x2124]
call fcn.00516d50
mov al, byte [ebp - 0x2f49]
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.0041e865
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
mov esi, dword [ebp - 0x2f78]
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 - 0x2f74]
mov dword [ebp - 0x2f6c], eax
inc eax
push eax
call fcn.004036f0
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x2e14]
xorps xmm0, xmm0
mov dword [ebp - 0x2e0c], 0
movq qword [ebp - 0x2e14], xmm0
call fcn.00511780
test byte [ebp - 0x2f94], 2
mov byte [ebp - 4], 0x18
je 0x523ad8
push 0x63ed04
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x523d5b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x63ed40
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
xorps xmm0, xmm0
lea ecx, [ebp - 0x2194]
movups xmmword [ebp - 0x2194], xmm0
movq qword [ebp - 0x2184], xmm0
call fcn.00513f30
mov eax, dword [ebp - 0x2f74]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x522b78
xor edi, edi
mov dword [ebp - 0x2f64], 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, [edi + ecx]
add esi, edi
push 0x609f08
call fcn.00516ab0
push eax
push str.HKU_
mov ecx, esi
call fcn.00516b20
add edi, 0xc
sub dword [ebp - 0x2f64], 1
jne 0x522b20
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov eax, dword [ebp - 0x2f74]
lea ecx, [eax + eax*2]
shl ecx, 2
mov dword [ebp - 0x2f60], ecx
add ecx, dword [ebp - 0x2018]
push 0x60bbf0
call fcn.00516e30
cmp byte [esi + 0x28], 0
je 0x522bb5
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f60]
add eax, 0xc
push 0x60bc68
add ecx, eax
call fcn.00516e30
mov eax, dword [ebp - 0x2f84]
cdq
and edx, 3
mov dword [ebp - 0x2f80], 0
add eax, edx
sar eax, 2
cmp dword [ebp - 0x2f6c], 0
mov dword [ebp - 0x2f50], eax
jbe 0x52305c
xor ecx, ecx
mov dword [ebp - 0x2f5c], 0
mov dword [ebp - 0x2f64], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x523d50
mov eax, dword [ebp - 0x2f80]
cmp eax, dword [ebp - 0x2f74]
jae 0x522c63
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63ede8
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
jmp 0x522c7c
lea ecx, [ebp - 0x1fc0]
jne 0x522c72
push 0x63ee08
jmp 0x522c77
push 0x63ee20
call fcn.00516e30
mov ecx, dword [ebp - 0x2f5c]
lea eax, [ebp - 0x1fb0]
add ecx, dword [ebp - 0x2018]
push eax
push 0x609fe8
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x522e0c
push 1
push 0x5f014c
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2194]
call fcn.00513c80
mov ecx, eax
call fcn.00513e20
test eax, eax
je 0x522e0c
lea ecx, [ebp - 0x2194]
mov dword [ebp - 0x2f54], 0
call fcn.00513e20
test eax, eax
je 0x522e0c
mov edi, dword [ebp - 0x2f54]
nop dword [eax]
push 3
push 1
push edi
lea ecx, [ebp - 0x2194]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b80
lea edx, [esi + 0x1c]
mov ecx, eax
call fcn.005097e0
test al, al
jne 0x522d50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x522df2
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63ee3c
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea ecx, [ebp - 0x2194]
inc edi
call fcn.00513e20
cmp edi, eax
jb 0x522d00
mov edi, dword [ebp - 0x2f88]
mov ecx, dword [ebp - 0x2f5c]
lea eax, [ebp - 0x1f94]
add ecx, dword [ebp - 0x2018]
push eax
push 0x601f04
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x522f1d
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x522e77
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x52302a
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63ee5c
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov ecx, dword [ebp - 0x2f5c]
lea eax, [ebp - 0x1f94]
add ecx, dword [ebp - 0x2018]
push eax
push 0x60a014
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x52302a
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x522f88
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x52302a
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63ee74
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f80]
mov ecx, dword [ebp - 0x2f64]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f5c], 0xc
mov dword [ebp - 0x2f80], eax
mov dword [ebp - 0x2f64], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x522bf3
movsd xmm0, qword [0x6a4098]
comisd xmm0, xmmword [esi + 8]
jbe 0x523200
push 0
push 0x20019
push 0x636828
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x523200
lea eax, [ebp - 0x2e14]
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
je 0x523200
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 - 0x2e14]
lea ecx, [ebp - 0x1ff0]
push 0x5ed514
push 0x636828
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x6368e8
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
test al, al
je 0x5231de
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x523142
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5231de
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fa0]
push 0x63ee90
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea eax, [ebp - 0x2e14]
inc edi
push eax
push edi
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
jne 0x5230b0
mov edi, dword [ebp - 0x2f88]
push 0
push 0x63eec0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f58]
push 0x63ef64
lea ecx, [ecx + eax*2]
mov dword [ebp - 0x2f58], ecx
push ecx
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x523d50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x63efa0
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f74]
mov dword [ebp - 0x2fd4], 0x5fecc8
mov dword [ebp - 0x2fd0], 0x5fecd0
mov dword [ebp - 0x2fcc], 0x5fece0
test eax, eax
je 0x523312
xor edi, edi
mov dword [ebp - 0x2f64], 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 0x5fec18
call fcn.00516ab0
push eax
push str.HKU_
mov ecx, esi
call fcn.00516b20
add edi, 0xc
sub dword [ebp - 0x2f64], 1
jne 0x5232c0
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f60]
add ecx, dword [ebp - 0x2018]
push 0x636b18
call fcn.00516e30
cmp byte [esi + 0x28], 0
je 0x523349
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f60]
add eax, 0xc
push 0x636a00
add ecx, eax
call fcn.00516e30
xor eax, eax
mov dword [ebp - 0x2f64], eax
cmp dword [ebp - 0x2f6c], eax
jbe 0x523633
xor ecx, ecx
mov dword [ebp - 0x2f5c], eax
mov dword [ebp - 0x2f54], ecx
nop dword [eax + eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x523d50
xor edx, edx
mov dword [ebp - 0x2f80], edx
nop
mov eax, dword [ebp - 0x2f64]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
cmp eax, dword [ebp - 0x2f74]
jae 0x5233e6
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2030]
push 0x5f45e4
push dword [ebp + edx*4 - 0x2fd4]
push 0x5ed514
call fcn.00516ab0
push eax
push 0x63ee00
jmp 0x523404
push 0
push 0
push 0x5f45e4
push dword [ebp + edx*4 - 0x2fd4]
jne 0x5233ff
push 0x63f048
jmp 0x523404
push 0x63f05c
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
mov eax, dword [ebp - 0x2f80]
mov ecx, dword [ebp - 0x2f5c]
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 - 0x2fd4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x5235eb
lea eax, [ebp - 0x2e14]
mov dword [ebp - 0x2f70], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.00511000
test al, al
je 0x5235eb
nop dword [eax]
lea eax, [ebp - 0x1f94]
push eax
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
test al, al
je 0x5235c3
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
jne 0x5235c3
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x52350d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5235c3
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x523d50
mov eax, dword [ebp - 0x2f70]
lea ecx, [ebp - 0x2e14]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f70], eax
call fcn.00511000
test al, al
jne 0x5234a0
mov edx, dword [ebp - 0x2f80]
inc edx
mov dword [ebp - 0x2f80], edx
cmp edx, 3
jb 0x5233a0
mov eax, dword [ebp - 0x2f64]
mov ecx, dword [ebp - 0x2f54]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f5c], 0xc
mov dword [ebp - 0x2f64], eax
mov dword [ebp - 0x2f54], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x523370
lea eax, [esi + 0x25c]
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516e00
lea ecx, [esi + 0x238]
call fcn.00516cc0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515800
mov eax, dword [ebp - 0x2f58]
add eax, dword [ebp - 0x2f50]
mov dword [ebp - 0x2f58], eax
mov eax, dword [ebp - 0x2f74]
test eax, eax
je 0x5236f3
xor ecx, ecx
mov dword [ebp - 0x2f70], eax
mov dword [ebp - 0x2f54], 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.00516ab0
push eax
mov ecx, esi
call fcn.00516ab0
push eax
mov ecx, edi
call fcn.00516b20
mov ecx, dword [ebp - 0x2f54]
add ecx, 0xc
sub dword [ebp - 0x2f70], 1
mov dword [ebp - 0x2f54], ecx
jne 0x523690
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f60]
lea eax, [esi + 0x1d8]
add ecx, dword [ebp - 0x2018]
push eax
call fcn.00516e00
push 0x250
xorps xmm0, xmm0
lea eax, [ebp - 0x2788]
push 0
movq qword [ebp - 0x2538], xmm0
push eax
mov dword [ebp - 0x2538], 0xffffffff
call fcn.00420570
add esp, 0xc
push 0x4c
lea eax, [ebp - 0x22c8]
mov byte [ebp - 4], 0x1a
push 0
push eax
call fcn.00420570
add esp, 0xc
lea ecx, [ebp - 0x22c8]
call fcn.0050a400
mov eax, dword [ebp - 0x2f74]
inc eax
mov byte [ebp - 4], 0x1b
xor ecx, ecx
mov dword [ebp - 0x2f80], 0
mov dword [ebp - 0x2f70], eax
mov dword [ebp - 0x2f5c], 0
mov dword [ebp - 0x2f54], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f70]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x523d33
mov eax, dword [ebp - 0x2f74]
cmp dword [ebp - 0x2f80], eax
jne 0x5237cc
push 0x63f078
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
jmp 0x523805
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f0a4
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
mov ecx, dword [ebp - 0x2f5c]
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 0x605098
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
push 3
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2788]
call fcn.004017b0
test al, al
je 0x523a3b
nop dword [eax]
push 0
mov edx, 0x6050b0
lea ecx, [ebp - 0x275c]
call fcn.00513700
test eax, eax
je 0x523a28
xor eax, eax
lea edx, [ebp - 0x275c]
mov dword [ebp - 0x2f64], eax
cmp word [ebp - 0x275c], ax
je 0x5238b5
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 0x523893
mov dword [ebp - 0x2f64], esi
mov esi, dword [ebp - 0x2f78]
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
mov ecx, dword [ebp - 0x2f5c]
lea eax, [ebp - 0x275c]
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 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 0x5fb240
lea ecx, [ebp - 0x1fb0]
call fcn.00516de0
test al, al
je 0x523971
push 0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x22c8]
call fcn.0050a2c0
lea ecx, [ebp - 0x22c8]
call fcn.0050a240
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
call dword [0x5cd624]
test eax, eax
jne 0x523971
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x523a28
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
lea eax, [ebp - 0x275c]
push eax
push 0x612588
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x523d33
lea ecx, [ebp - 0x2788]
call fcn.00401760
test al, al
jne 0x523860
mov eax, dword [ebp - 0x2f80]
mov ecx, dword [ebp - 0x2f54]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f5c], 0xc
mov dword [ebp - 0x2f80], eax
mov dword [ebp - 0x2f54], ecx
cmp eax, dword [ebp - 0x2f74]
jbe 0x523785
push 0
push 0x63f0d0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f84]
push 0
lea eax, [eax + eax*2]
sub ecx, eax
mov eax, dword [ebp - 0x2f58]
add eax, ecx
lea ecx, [esi + 0x14b0]
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
lea ecx, [ebp - 0x22c8]
call fcn.00509f30
mov eax, dword [ebp - 0x2538]
cmp eax, 0xffffffff
je 0x523ac9
push eax
call dword [0x5cd484]
lea ecx, [ebp - 0x2194]
mov byte [ebp - 4], 0x18
call fcn.00513e90
xorps xmm0, xmm0
mov dword [ebp - 0x2068], 0
lea ecx, [ebp - 0x2070]
movq qword [ebp - 0x2070], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0x2040]
xorps xmm0, xmm0
mov dword [ebp - 0x2038], 0
movq qword [ebp - 0x2040], xmm0
call fcn.00516ef0
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x2164]
xorps xmm0, xmm0
mov dword [ebp - 0x215c], 0
movq qword [ebp - 0x2164], xmm0
call fcn.00516ef0
push 8
mov byte [ebp - 4], 0x1e
lea ecx, [ebp - 0x2e2c]
push 0x63f188
mov dword [ebp - 0x2e2c], 0
call fcn.00401a10
mov eax, dword [ebp - 0x2f94]
mov byte [ebp - 4], 0x1f
test al, 4
je 0x524ba3
push 0x63f1e0
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x63f240
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f74]
test eax, eax
je 0x523c48
xor edi, edi
mov dword [ebp - 0x2f54], 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 0x607128
call fcn.00516ab0
push eax
push str.HKU_
mov ecx, esi
call fcn.00516b20
add edi, 0xc
sub dword [ebp - 0x2f54], 1
jne 0x523bf0
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov eax, dword [ebp - 0x2f74]
lea ecx, [eax + eax*2]
shl ecx, 2
mov dword [ebp - 0x2f80], ecx
add ecx, dword [ebp - 0x2018]
push 0x629970
call fcn.00516e30
cmp byte [esi + 0x28], 0
je 0x523c85
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f80]
add eax, 0xc
push 0x629a80
add ecx, eax
call fcn.00516e30
mov eax, dword [ebp - 0x2f84]
cdq
and edx, 3
mov dword [ebp - 0x2f64], 0
add eax, edx
sar eax, 2
cmp dword [ebp - 0x2f6c], 0
mov dword [ebp - 0x2f50], eax
jbe 0x523fd5
xor ecx, ecx
mov dword [ebp - 0x2f60], 0
mov dword [ebp - 0x2f54], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f64]
cmp eax, dword [ebp - 0x2f74]
jae 0x523d67
mov ecx, dword [ebp - 0x2f60]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f310
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
jmp 0x523d80
lea ecx, [ebp - 0x22c8]
call fcn.00509f30
mov eax, dword [ebp - 0x2538]
cmp eax, 0xffffffff
je 0x523d50
push eax
call dword [0x5cd484]
lea ecx, [ebp - 0x2194]
call fcn.00513e90
mov byte [ebp - 0x2f49], 2
jmp 0x528f6c
lea ecx, [ebp - 0x1fc0]
jne 0x523d76
push 0x63f330
jmp 0x523d7b
push 0x63f350
call fcn.00516e30
mov ecx, dword [ebp - 0x2f60]
add ecx, dword [ebp - 0x2018]
push 0
push 0x20019
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x523f9d
lea eax, [ebp - 0x1f94]
push eax
push 0x600c9c
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
test al, al
je 0x523e28
lea ecx, [ebp - 0x1f94]
call fcn.00516cc0
test eax, eax
je 0x523e28
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f374
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63f39c
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea eax, [ebp - 0x1f94]
push eax
push 0x600d74
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
test al, al
je 0x523ea4
lea ecx, [ebp - 0x1f94]
call fcn.00516cc0
test eax, eax
je 0x523ea4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f3c0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63f408
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea eax, [ebp - 0x1f94]
push eax
push 0x6357e8
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
test al, al
je 0x523f9d
lea ecx, [ebp - 0x1f94]
call fcn.00516cc0
test eax, eax
je 0x523f9d
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
call dword [0x5cd624]
test eax, eax
jne 0x523f07
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
push 0x63f448
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x63f46c
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f64]
mov ecx, dword [ebp - 0x2f54]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f60], 0xc
mov dword [ebp - 0x2f64], eax
mov dword [ebp - 0x2f54], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x523cc3
mov eax, dword [ebp - 0x2f50]
cdq
and edx, 3
add eax, edx
sar eax, 2
add dword [ebp - 0x2f58], eax
mov dword [ebp - 0x2f60], eax
mov eax, dword [ebp - 0x2f74]
test eax, eax
je 0x524052
xor edi, edi
mov dword [ebp - 0x2f54], 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 0x607278
call fcn.00516ab0
push eax
push str.HKU_
mov ecx, esi
call fcn.00516b20
add edi, 0xc
sub dword [ebp - 0x2f54], 1
jne 0x524000
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov ecx, dword [ebp - 0x2f80]
add ecx, dword [ebp - 0x2018]
push 0x629dd0
call fcn.00516e30
cmp byte [esi + 0x28], 0
je 0x524089
mov eax, dword [ebp - 0x2018]
mov ecx, dword [ebp - 0x2f80]
add eax, 0xc
push 0x629e40
add ecx, eax
call fcn.00516e30
cmp dword [ebp - 0x2f6c], 0
mov dword [ebp - 0x2f64], 0
jbe 0x5242ae
xor ecx, ecx
mov dword [ebp - 0x2f5c], 0
mov dword [ebp - 0x2f54], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2018]
push 0
push 0x20019
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x52427c
mov eax, dword [ebp - 0x2f64]
cmp eax, dword [ebp - 0x2f74]
jae 0x52414e
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f490
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
jmp 0x524167
lea ecx, [ebp - 0x1fc0]
jne 0x52415d
push 0x63f4a8
jmp 0x524162
push 0x63f4c0
call fcn.00516e30
lea eax, [ebp - 0x2e14]
mov dword [ebp - 0x2f70], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
je 0x52427c
mov esi, dword [ebp - 0x2f70]
mov edi, dword [ebp - 0x2f5c]
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 - 0x2e14]
lea ecx, [ecx + edi]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
lea eax, [ebp - 0x1fb0]
push eax
push 0x5fde4c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
test al, al
je 0x524254
lea ecx, [ebp - 0x1fb0]
call fcn.005167b0
test al, al
jne 0x524254
push 0
push 0
push 0
push 0
push 0
push 0x63f4dc
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x2e14]
inc esi
push eax
push esi
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
jne 0x5241a0
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov eax, dword [ebp - 0x2f64]
mov ecx, dword [ebp - 0x2f54]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f5c], 0xc
mov dword [ebp - 0x2f64], eax
mov dword [ebp - 0x2f54], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x5240b2
mov ecx, dword [ebp - 0x2f58]
mov eax, dword [ebp - 0x2f60]
add ecx, eax
cmp dword [ebp - 0x2f6c], 0
mov dword [ebp - 0x2f58], ecx
mov dword [ebp - 0x2f64], 0
jbe 0x524748
xor ecx, ecx
mov dword [ebp - 0x2f5c], 0
mov dword [ebp - 0x2f70], ecx
nop dword [eax + eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f64]
cmp eax, dword [ebp - 0x2f74]
jae 0x5243d6
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2058]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6016f8
call fcn.00516ab0
push eax
push str.HKU_
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2058]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f50c
call fcn.00516ab0
push eax
push str.HKU_
lea ecx, [ebp - 0x2070]
call fcn.00516b20
mov ecx, dword [ebp - 0x2f5c]
add ecx, dword [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x63f53c
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
jmp 0x524421
push 1
lea ecx, [ebp - 0x1ff0]
jne 0x5243f3
push 0x629ce8
call fcn.00516b80
push 1
push 0x63f554
jmp 0x524404
push 0x629d50
call fcn.00516b80
push 1
push 0x63f5b8
lea ecx, [ebp - 0x2070]
call fcn.00516b80
push 1
push 0x63f58c
lea ecx, [ebp - 0x1fc0]
call fcn.00516b80
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x52470a
lea eax, [ebp - 0x2e14]
mov dword [ebp - 0x2f54], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.00511000
test al, al
je 0x52470a
nop dword [eax]
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1fb0]
call fcn.00514490
test al, al
je 0x5246e2
lea ecx, [ebp - 0x1f94]
call fcn.00516d20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb30
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
test al, al
je 0x524514
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x52456e
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb50
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x5245d7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb50
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
lea ecx, [ebp - 0x1f94]
test al, al
je 0x5245f8
push 0x63f608
call fcn.00516e30
jmp 0x52462c
push 3
lea edx, [esi + 0x1c]
call fcn.005097e0
test al, al
jne 0x52462c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5246e2
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f54]
lea ecx, [ebp - 0x2e14]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f54], eax
call fcn.00511000
test al, al
jne 0x524470
mov eax, dword [ebp - 0x2f64]
mov ecx, dword [ebp - 0x2f70]
inc eax
add ecx, dword [ebp - 0x2f50]
add dword [ebp - 0x2f5c], 0xc
mov dword [ebp - 0x2f64], eax
mov dword [ebp - 0x2f70], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x5242f0
mov eax, dword [ebp - 0x2f60]
mov ecx, dword [ebp - 0x2f58]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
add ecx, eax
mov dword [ebp - 0x2fb4], 0x629758
push 0
mov dword [ebp - 0x2f58], ecx
lea ecx, [esi + 0x2b0]
push 0x63f628
mov dword [ebp - 0x2fb0], 0x6297f8
mov dword [ebp - 0x2fac], 0
mov dword [ebp - 0x2fa4], 0x62a390
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516b20
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
mov dword [ebp - 0x2fa8], eax
xor eax, eax
mov dword [ebp - 0x2f5c], eax
push 0
push 0x20019
push dword [ebp + eax*4 - 0x2fb4]
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x524b48
mov eax, dword [ebp - 0x2f5c]
lea ecx, [esi + 0x14b0]
imul eax, dword [ebp - 0x2f50]
xor edx, edx
push 0
div dword [ebp - 0x2f6c]
add eax, dword [ebp - 0x2f58]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f5c]
test eax, eax
jne 0x524864
push 0x63f694
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
push 0x63f554
lea ecx, [ebp - 0x2070]
call fcn.00516e30
xor eax, eax
cmp dword [ebp - 0x2f5c], 2
lea ecx, [ebp - 0x2e14]
push ecx
mov dword [ebp - 0x2f54], eax
lea ecx, [ebp - 0x1fa4]
push eax
jae 0x5248b7
call fcn.005110a0
jmp 0x5248bc
cmp eax, 1
jne 0x524880
push 0x63f6a0
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
push 0x63f5b8
jmp 0x524833
cmp eax, 2
jne 0x52488c
push 0x63f6b8
jmp 0x524823
cmp eax, 3
jne 0x524898
push 0x63f6dc
jmp 0x524823
cmp eax, 4
jne 0x52482e
push 0x63f704
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
push 0x63f5b8
jmp 0x524833
call fcn.00511000
test al, al
je 0x524b48
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x1f94]
call fcn.00514490
test al, al
je 0x524b3c
lea ecx, [ebp - 0x1f94]
call fcn.00516d20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb30
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
test al, al
je 0x524968
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x5249c2
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb50
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x524a2b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5feb50
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2070]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2040]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x524a4c
push 0x63f608
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
jmp 0x524a86
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1fb0]
call fcn.005097e0
test al, al
jne 0x524a86
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x524b3c
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f54]
inc eax
jmp 0x524840
mov eax, dword [ebp - 0x2f5c]
inc eax
mov dword [ebp - 0x2f5c], eax
cmp eax, 5
jb 0x5247c1
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f84]
push 0
lea eax, [eax + eax*2]
sub ecx, eax
mov eax, dword [ebp - 0x2f58]
add eax, ecx
lea ecx, [esi + 0x14b0]
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
push 0
push 0x63f740
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f94]
test al, 8
je 0x525315
push 0x63f810
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x63f880
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f84]
cdq
sub eax, edx
sar eax, 1
xor ecx, ecx
mov dword [ebp - 0x2f64], eax
mov dword [ebp - 0x2f70], ecx
test ecx, ecx
lea ecx, [ebp - 0x1ff0]
jne 0x524c43
push 0x60a440
call fcn.00516e30
push 1
push 0x63f93c
jmp 0x524c54
push 0x60a4e0
call fcn.00516e30
push 1
push 0x63f95c
lea ecx, [ebp - 0x1fc0]
call fcn.00516b80
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x524e1f
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f54], eax
jne 0x528ff7
lea ecx, [ebp - 0x2e14]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
je 0x524e1f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1ff0]
push 0x5ed514
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2164]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push str.Debugger
lea ecx, [ebp - 0x2164]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
test al, al
je 0x524e13
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
jne 0x524e13
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x524d5d
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x524e13
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x528ff7
mov eax, dword [ebp - 0x2f54]
inc eax
jmp 0x524c87
mov ecx, dword [ebp - 0x2f70]
xor eax, eax
inc ecx
cmp byte [esi + 0x28], al
mov dword [ebp - 0x2f70], ecx
setne al
inc eax
cmp ecx, eax
jl 0x524c26
mov eax, dword [ebp - 0x2f58]
lea ecx, [ebp - 0x21d4]
add eax, dword [ebp - 0x2f64]
push 0xc
mov dword [ebp - 0x2f58], eax
call fcn.00401d00
lea ecx, [ebp - 0x21d4]
call fcn.00516ef0
mov byte [ebp - 4], 0x20
lea eax, [ebp - 0x2fc0]
xor ecx, ecx
mov dword [ebp - 0x2fc0], 0x63f984
mov dword [ebp - 0x2fbc], 0x63f9a0
mov dword [ebp - 0x2fb8], 0x63f9e8
mov dword [ebp - 0x2fb4], 0x63fa28
mov dword [ebp - 0x2fb0], 0x63fa94
mov dword [ebp - 0x2fac], 0x63fab8
mov dword [ebp - 0x2fa8], 0x63fb08
mov dword [ebp - 0x2fa4], 0x63fb38
mov dword [ebp - 0x2f60], 0
mov dword [ebp - 0x2f70], ecx
mov dword [ebp - 0x2f50], eax
nop dword [eax]
mov eax, ecx
lea ecx, [esi + 0x14b0]
shr eax, 3
add eax, dword [ebp - 0x2f58]
push 0
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x525b44
cmp dword [ebp - 0x2f60], 4
lea ecx, [ebp - 0x1fc0]
jae 0x524f18
push 0x63fb90
jmp 0x524f1d
push 0x63fbb4
call fcn.00516e30
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x1fa4]
push 0
push 0x20019
push dword [eax]
call fcn.005116f0
test al, al
je 0x525299
lea eax, [ebp - 0x2e14]
mov dword [ebp - 0x2f54], 0
push eax
push 0
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
je 0x525299
mov eax, dword [ebp - 0x2f60]
and eax, 1
mov dword [ebp - 0x2f80], eax
nop dword [eax]
test eax, eax
jne 0x5250c5
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x1ff0]
push str.Command
push dword [ebp - 0x2e14]
push 0x5ed514
push dword [eax]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x525071
lea eax, [ebp - 0x2040]
push eax
push str.DelegateExecute
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x2040]
call fcn.00516cc0
test eax, eax
je 0x525071
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x636518
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
push 0x636500
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x5251a5
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x1ff0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x636538
push dword [ebp - 0x2e14]
push 0x5ed514
push dword [eax]
call fcn.00516b20
lea eax, [ebp - 0x2040]
push eax
push 0x5fde6c
jmp 0x525129
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2040]
call fcn.00516e30
push 0
push dword [ebp - 0x2e2c]
lea ecx, [ebp - 0x2040]
call fcn.00514490
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
test al, al
jne 0x525161
push dword [ebp - 0x2e14]
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x1ff0]
push 0x5ed514
push dword [eax]
call fcn.00516b20
lea eax, [ebp - 0x2040]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
lea ecx, [ebp - 0x2040]
call fcn.00516cc0
test eax, eax
je 0x5251a5
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x636518
lea ecx, [ebp - 0x2040]
call fcn.00516ab0
push eax
push 0x636500
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5ed51c
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005112a0
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x52526b
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x525b44
mov eax, dword [ebp - 0x2f54]
lea ecx, [ebp - 0x2e14]
inc eax
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
mov dword [ebp - 0x2f54], eax
call fcn.005110a0
test al, al
mov eax, dword [ebp - 0x2f80]
jne 0x524f80
mov eax, dword [ebp - 0x2f60]
mov ecx, dword [ebp - 0x2f70]
inc eax
mov edx, dword [ebp - 0x2f64]
add ecx, edx
add dword [ebp - 0x2f50], 4
mov dword [ebp - 0x2f60], eax
mov dword [ebp - 0x2f70], ecx
cmp eax, 8
jb 0x524ee0
mov eax, dword [ebp - 0x2f84]
mov ecx, dword [ebp - 0x2f58]
sub eax, edx
add ecx, eax
push 0
mov dword [ebp - 0x2f58], ecx
push ecx
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
push 0
push 0x63fbe0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x21d4]
mov byte [ebp - 4], 0x1f
call fcn.00516d50
mov eax, dword [ebp - 0x2f94]
test al, 0x10
je 0x525daa
push 0x63fc8c
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
mov eax, 0x55555556
lea ecx, [ebp - 0x2e34]
imul dword [ebp - 0x2f84]
push 8
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2f5c], eax
call fcn.00401d40
lea ecx, [ebp - 0x2e34]
call fcn.004015e0
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x2e1c]
push 4
mov dword [ebp - 0x2050], 0
mov dword [ebp - 0x2028], 0
call fcn.00401d20
lea ecx, [ebp - 0x2e1c]
call fcn.004015e0
push 0x80000000
push 0
push 0
mov byte [ebp - 4], 0x22
call dword [0x5cd100]
push eax
lea ecx, [ebp - 0x2e1c]
call fcn.00401600
lea ecx, [ebp - 0x2e1c]
call fcn.00401620
test al, al
jne 0x525707
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push 0
push 0
push 3
push 0x30
push 0
push dword [ebp - 0x2e1c]
call dword [0x5cd074]
call dword [0x5cd42c]
cmp eax, 0xea
jne 0x525707
cmp byte [edi], 0
jne 0x525707
mov eax, dword [ebp - 0x2050]
lea ecx, [ebp - 0x2e34]
add eax, 0x400
push eax
mov dword [ebp - 0x2f54], eax
call fcn.00403dc0
test eax, eax
je 0x525707
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push dword [ebp - 0x2f54]
push dword [ebp - 0x2e34]
push 3
push 0x30
push 0
push dword [ebp - 0x2e1c]
call dword [0x5cd074]
test eax, eax
je 0x525707
mov eax, dword [ebp - 0x2e34]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2028]
mov dword [ebp - 0x2f60], eax
call fcn.00515cd0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f7c]
push 0x63fcb8
call fcn.00516ab0
push eax
push 0x63fd4c
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f54], 0
test ecx, ecx
je 0x5256f5
xor eax, eax
mov dword [ebp - 0x2f70], eax
nop word [eax + eax]
xor edx, edx
div ecx
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x525cff
mov eax, dword [ebp - 0x2f60]
lea ecx, [ebp - 0x1ff0]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5febe8
push dword [eax]
push 0x612b90
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5fec00
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x525586
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x5255e0
push 0
lea ecx, [ebp - 0x1ff0]
call fcn.005167d0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fec00
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x5255c9
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x5255e0
lea eax, [ebp - 0x1f94]
push eax
push 0x5fa704
lea ecx, [ebp - 0x1fa4]
call fcn.00511410
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x52561a
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5256c1
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov eax, dword [ebp - 0x2f60]
lea ecx, [ebp - 0x1fa0]
push 0x612588
push dword [eax]
push 0x63fd6c
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x525cff
mov edx, dword [ebp - 0x2f54]
mov eax, dword [ebp - 0x2f70]
inc edx
add eax, dword [ebp - 0x2f5c]
add dword [ebp - 0x2f60], 0x2c
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f54], edx
mov dword [ebp - 0x2f70], eax
cmp edx, ecx
jb 0x525500
push 0
push 0x63fd90
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f5c]
push 0x63fe34
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x525cff
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 - 0x2e1c]
call dword [0x5cd074]
call dword [0x5cd42c]
cmp eax, 0xea
jne 0x525a80
cmp byte [edi], 0
jne 0x525a80
mov eax, dword [ebp - 0x2050]
lea ecx, [ebp - 0x2e34]
add eax, 0x400
push eax
mov dword [ebp - 0x2f54], eax
call fcn.00403dc0
test eax, eax
je 0x525a80
push 0
push 0
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x2050]
push eax
push dword [ebp - 0x2f54]
push dword [ebp - 0x2e34]
push 3
push 0xb
push 0
push dword [ebp - 0x2e1c]
call dword [0x5cd074]
test eax, eax
je 0x525a80
mov eax, dword [ebp - 0x2e34]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2028]
mov dword [ebp - 0x2f50], eax
call fcn.00515cd0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2024]
push dword [ebp - 0x2f7c]
push 0x63fe70
call fcn.00516ab0
push eax
push 0x63ff10
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed514
push dword [esi + 0x20]
lea ecx, [ebp - 0x1fb0]
call fcn.00516b20
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f54], 0
test ecx, ecx
je 0x525a6e
xor eax, eax
mov dword [ebp - 0x2f70], eax
xor edx, edx
div ecx
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x525cff
mov eax, dword [ebp - 0x2f50]
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 0x612b90
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
push 0x5fa704
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
test al, al
je 0x525909
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
je 0x525939
mov eax, dword [ebp - 0x2f50]
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.00516b20
push 0
push 1
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push str.SystemRoot_
lea ecx, [ebp - 0x1f94]
call fcn.00514e30
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x525993
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x525a3a
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x1fa0]
push 0x612588
push dword [eax]
push 0x63ff40
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x525cff
mov edx, dword [ebp - 0x2f54]
mov eax, dword [ebp - 0x2f70]
inc edx
add eax, dword [ebp - 0x2f5c]
add dword [ebp - 0x2f50], 0x2c
mov ecx, dword [ebp - 0x2028]
mov dword [ebp - 0x2f54], edx
mov dword [ebp - 0x2f70], eax
cmp edx, ecx
jb 0x525886
push 0
push 0x63ff60
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f5c]
push 0x640014
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x640050
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6a40a0]
jb 0x525d37
push 4
lea ecx, [ebp - 0x2e18]
call fcn.00401d20
lea ecx, [ebp - 0x2e18]
call fcn.004015e0
lea eax, [ebp - 0x2e18]
push eax
push 0x5e78ec
push 1
push 0
push 0x5e7afc
call dword [0x5cda74]
test eax, eax
jns 0x525b5b
lea ecx, [ebp - 0x2e18]
mov byte [ebp - 4], 0x22
call fcn.00402ef0
jmp 0x525d50
lea ecx, [ebp - 0x21d4]
call fcn.00516d50
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
lea ecx, [ebp - 0x3020]
call fcn.00401c60
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x3010]
movups xmmword [ebp - 0x2fd8], xmm0
call fcn.00401c60
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x3000]
movups xmmword [ebp - 0x3030], xmm0
call fcn.00401c60
movups xmm0, xmmword [eax]
lea ecx, [ebp - 0x2ff0]
movups xmmword [ebp - 0x2fb0], xmm0
call fcn.00401c60
mov edi, eax
mov byte [ebp - 4], 0x27
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x2fd8]
mov ecx, dword [ebp - 0x2e18]
mov edx, esp
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov esi, dword [ecx]
movups xmmword [edx], xmm0
movups xmm0, xmmword [ebp - 0x3030]
movups xmmword [eax], xmm0
mov eax, esp
sub esp, 0x10
movups xmm0, xmmword [ebp - 0x2fb0]
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 - 0x2ff0]
mov esi, eax
call fcn.00401cf0
lea ecx, [ebp - 0x3000]
call fcn.00401cf0
lea ecx, [ebp - 0x3010]
call fcn.00401cf0
lea ecx, [ebp - 0x3020]
mov byte [ebp - 4], 0x23
call fcn.00401cf0
test esi, esi
jns 0x525c47
lea ecx, [ebp - 0x2e18]
mov byte [ebp - 4], 0x22
call fcn.00402ef0
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
jmp 0x525d50
push 4
lea ecx, [ebp - 0x2e28]
call fcn.00401d20
lea ecx, [ebp - 0x2e28]
call fcn.004015e0
push 0x5ed514
lea ecx, [ebp - 0x2fdc]
mov byte [ebp - 4], 0x28
call fcn.00401ae0
mov byte [ebp - 4], 0x29
mov ecx, dword [ebp - 0x2e18]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2e28]
push ecx
mov ecx, eax
call fcn.00401ba0
push eax
push dword [ebp - 0x2e18]
mov eax, dword [esi + 0x1c]
call eax
lea ecx, [ebp - 0x2fdc]
mov byte [ebp - 4], 0x28
mov esi, eax
call fcn.00401b90
test esi, esi
jns 0x525cbe
lea ecx, [ebp - 0x2e28]
call fcn.00402ef0
jmp 0x525c27
mov edi, dword [ebp - 0x2f88]
lea eax, [ebp - 0x2010]
mov esi, dword [ebp - 0x2f78]
mov ecx, esi
push edi
push eax
push dword [ebp - 0x2f68]
push dword [ebp - 0x2e28]
call fcn.00520550
lea ecx, [ebp - 0x2e28]
test al, al
jne 0x525d21
call fcn.00402ef0
lea ecx, [ebp - 0x2e18]
call fcn.00402ef0
lea ecx, [ebp - 0x2e1c]
call fcn.004015f0
lea ecx, [ebp - 0x2e34]
call fcn.00402fb0
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
call fcn.00402ef0
lea ecx, [ebp - 0x2e18]
mov byte [ebp - 4], 0x22
call fcn.00402ef0
jmp 0x525d50
push edi
lea eax, [ebp - 0x2010]
mov ecx, esi
push eax
push dword [ebp - 0x2f68]
call fcn.00520150
test al, al
je 0x525cff
mov eax, dword [ebp - 0x2f84]
sub eax, dword [ebp - 0x2f5c]
mov ecx, dword [ebp - 0x2f58]
add ecx, eax
push 0
mov dword [ebp - 0x2f58], ecx
push ecx
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
push 0
push 0x6400f0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x2e1c]
call fcn.004015f0
lea ecx, [ebp - 0x2e34]
mov byte [ebp - 4], 0x1f
call fcn.00402fb0
mov eax, dword [ebp - 0x2f94]
test al, 0x20
je 0x5266b4
push 0x64019c
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528ff7
push 1
push 0x6401e0
lea ecx, [ebp - 0x1fa0]
call fcn.00516b80
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f74]
test eax, eax
je 0x525e5d
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 0x604900
push edi
lea ecx, [ebp - 0x2058]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push str.HKU_
push edi
lea ecx, [ebp - 0x2018]
call fcn.00403630
mov ecx, eax
call fcn.00516b20
inc edi
cmp edi, esi
jb 0x525e03
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
mov eax, dword [ebp - 0x2f74]
push 0x6402b0
push eax
lea ecx, [ebp - 0x2018]
call fcn.00403630
mov ecx, eax
call fcn.00516e30
cmp byte [esi + 0x28], 0
je 0x525e9a
mov eax, dword [ebp - 0x2f74]
lea ecx, [ebp - 0x2018]
push 0x640328
inc eax
push eax
call fcn.00403630
mov ecx, eax
call fcn.00516e30
push 0xc
lea ecx, [ebp - 0x217c]
call fcn.00401d00
push 1
push 0x6403b8
lea ecx, [ebp - 0x217c]
call fcn.00516e80
mov eax, dword [ebp - 0x2f84]
cdq
sub eax, edx
mov byte [ebp - 4], 0x2a
sar eax, 1
cmp dword [ebp - 0x2f6c], 0
mov dword [ebp - 0x2f60], eax
mov dword [ebp - 0x2f50], 0
jbe 0x526301
xor ecx, ecx
mov dword [ebp - 0x2f70], ecx
nop dword [eax]
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f6c]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x52684f
mov eax, dword [ebp - 0x2f50]
cmp eax, dword [ebp - 0x2f74]
jae 0x525f62
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64040c
push eax
lea ecx, [ebp - 0x2030]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
jmp 0x525f7b
lea ecx, [ebp - 0x1fc0]
jne 0x525f71
push 0x640424
jmp 0x525f76
push 0x64044c
call fcn.00516e30
push 0
push 0x20019
push dword [ebp - 0x2f50]
lea ecx, [ebp - 0x2018]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x5262d6
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f54], eax
jne 0x52684f
lea ecx, [ebp - 0x2e14]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005110a0
test al, al
je 0x5262d6
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x2018]
push 0x5ed514
push dword [ebp - 0x2f50]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb4]
call fcn.005116f0
test al, al
je 0x5262ca
lea eax, [ebp - 0x1f94]
push eax
push 0x604aa4
lea ecx, [ebp - 0x1fb4]
call fcn.00511410
test al, al
je 0x5262ca
lea ecx, [ebp - 0x1f94]
call fcn.005167b0
test al, al
jne 0x5262ca
lea eax, [ebp - 0x1fb0]
push eax
push 0x5fa734
lea ecx, [ebp - 0x1fb4]
call fcn.00511410
test al, al
je 0x5262ca
lea ecx, [ebp - 0x1fb0]
call fcn.005167b0
test al, al
jne 0x5262ca
lea eax, [ebp - 0x2134]
push eax
push 0x6049dc
lea ecx, [ebp - 0x1fb4]
call fcn.00511380
test al, al
je 0x5260cd
cmp dword [ebp - 0x2134], 1
je 0x5262ca
lea eax, [ebp - 0x2024]
push eax
push 0x6049fc
lea ecx, [ebp - 0x1fb4]
call fcn.00511410
test al, al
je 0x5260fb
lea ecx, [ebp - 0x2024]
call fcn.00516cc0
test eax, eax
jne 0x5262ca
lea eax, [ebp - 0x2024]
push eax
push 0x604a18
lea ecx, [ebp - 0x1fb4]
call fcn.00511410
test al, al
je 0x52617f
lea ecx, [ebp - 0x2024]
call fcn.00516cc0
test eax, eax
je 0x52617f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed650
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x5ed650
lea ecx, [ebp - 0x2024]
call fcn.00516b20
push 0
push 1
push 1
push 0
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x217c]
call fcn.00515510
test eax, eax
jne 0x5262ca
lea eax, [ebp - 0x2024]
push eax
push 0x604ac4
lea ecx, [ebp - 0x1fb4]
call fcn.00511410
test al, al
je 0x5261a9
lea ecx, [ebp - 0x2024]
call fcn.005167b0
test al, al
je 0x5261b9
push str.No_publisher
lea ecx, [ebp - 0x2024]
call fcn.00516e30
test byte [ebp - 0x2f68], 2
je 0x5261e2
push 9
push 1
push 1
push 0
push str.Microsoft
lea ecx, [ebp - 0x2024]
call fcn.00515510
test eax, eax
jne 0x5262ca
push 3
lea edx, [esi + 0x1c]
lea ecx, [ebp - 0x1f94]
call fcn.005097e0
test al, al
jne 0x52621c
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5262ca
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x612588
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1fc0]
push 0x612588
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x52684f
mov eax, dword [ebp - 0x2f54]
inc eax
jmp 0x525fb0
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f70]
inc eax
add ecx, dword [ebp - 0x2f60]
mov dword [ebp - 0x2f50], eax
mov dword [ebp - 0x2f70], ecx
cmp eax, dword [ebp - 0x2f6c]
jb 0x525ef0
push 0
push 0x640480
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f60]
push 0
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x52684f
push 0x640520
push dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x52684f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x640570
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 4
lea ecx, [ebp - 0x2e38]
call fcn.00401d20
push 8
push 0x640608
lea ecx, [ebp - 0x2e38]
call fcn.00401a10
cmp dword [ebp - 0x2f74], 0
mov byte [ebp - 4], 0x2b
mov dword [ebp - 0x2f50], 0
jbe 0x52665a
xor ecx, ecx
mov dword [ebp - 0x2f70], ecx
mov eax, ecx
xor edx, edx
div dword [ebp - 0x2f74]
push 0
add eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x526844
movsd xmm0, qword [0x6a4098]
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 0x526435
push 0x6228d8
jmp 0x52643a
push 0x622940
push dword [ebp - 0x2f50]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push str.HKU_
lea ecx, [ebp - 0x1ff0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x640658
push dword [ebp - 0x2f50]
lea ecx, [ebp - 0x2030]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
push 0
push 0x20019
lea ecx, [ebp - 0x1ff0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.005116f0
test al, al
je 0x52662f
xor eax, eax
cmp byte [edi], 0
mov dword [ebp - 0x2f54], eax
jne 0x526844
lea ecx, [ebp - 0x2e14]
push ecx
push eax
lea ecx, [ebp - 0x1fa4]
call fcn.00511000
test al, al
je 0x52662f
push dword [ebp - 0x2e14]
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
push 2
push 2
push 1
push 1
push 0x5f0150
lea ecx, [ebp - 0x1f94]
call fcn.00515510
test eax, eax
je 0x526623
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [0x6a40a8]
jbe 0x526547
push 0
push 0x5ed51c
push dword [ebp - 0x2e38]
lea ecx, [ebp - 0x1f94]
call fcn.005140d0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
call dword [0x5cd624]
test eax, eax
jne 0x526578
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x526623
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x526844
mov eax, dword [ebp - 0x2f54]
inc eax
jmp 0x5264c5
mov eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f70]
inc eax
add ecx, dword [ebp - 0x2f60]
mov dword [ebp - 0x2f50], eax
mov dword [ebp - 0x2f70], ecx
cmp eax, dword [ebp - 0x2f74]
jb 0x5263e0
push 0
push 0x640670
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f84]
sub eax, dword [ebp - 0x2f60]
mov ecx, dword [ebp - 0x2f58]
add ecx, eax
push 0
mov dword [ebp - 0x2f58], ecx
push ecx
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
lea ecx, [ebp - 0x2e38]
call fcn.00401ac0
lea ecx, [ebp - 0x217c]
mov byte [ebp - 4], 0x1f
call fcn.00516d50
mov eax, dword [ebp - 0x2f94]
test al, 0x40
je 0x5272c3
xor eax, eax
lea ecx, [ebp - 0x207c]
cmp byte [esi + 0x28], al
push 0xc
setne al
add eax, 3
mov dword [ebp - 0x2f54], eax
mov eax, dword [ebp - 0x2f84]
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x2f60], eax
call fcn.00401d00
lea ecx, [ebp - 0x207c]
call fcn.00516ef0
push 0xc
lea ecx, [ebp - 0x2090]
mov byte [ebp - 4], 0x2c
call fcn.00401d00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x2090]
push dword [ebp - 0x2f7c]
push 0x640728
call fcn.00516e40
push 0xc
lea ecx, [ebp - 0x20f4]
mov byte [ebp - 4], 0x2d
call fcn.00401d00
lea ecx, [ebp - 0x20f4]
call fcn.00516ef0
push 0x258
lea ecx, [ebp - 0x2530]
mov byte [ebp - 4], 0x2e
call fcn.00401d60
lea ecx, [ebp - 0x2530]
call fcn.00401630
mov ecx, dword [ebp - 0x2f54]
xor eax, eax
mov byte [ebp - 4], 0x2f
mov dword [ebp - 0x2f6c], eax
imul eax, dword [ebp - 0x2f60]
push 0
cdq
idiv ecx
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f58]
push eax
call fcn.004e73c0
mov eax, dword [ebp - 0x2f6c]
test eax, eax
jne 0x526866
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x6407a0
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fb0]
push 0x6407fc
call fcn.00516b20
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0xffffffffffffffff
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.00516ab0
push eax
push 0x64082c
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fa0]
push 0x640838
call fcn.00516b20
push 0x640860
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
push 1
push dword [esi + 0x1c]
lea ecx, [ebp - 0x207c]
call fcn.00516b80
jmp 0x526990
lea ecx, [ebp - 0x2e38]
call fcn.00401ac0
lea ecx, [ebp - 0x217c]
call fcn.00516d50
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
cmp eax, 1
jne 0x5268c8
push 0x640890
push 0xffffffffffffffff
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
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.00516ab0
push eax
push 0x6408f8
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0x640958
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
lea eax, [esi + 0x1c0]
jmp 0x526984
cmp eax, 2
jne 0x526927
push 0x640988
push 0xffffffffffffffff
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
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.00516ab0
push eax
push 0x6409d8
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0x640a24
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
lea eax, [esi + 0x1a8]
jmp 0x526984
cmp eax, 3
jne 0x526990
push 0x640a58
push 0xffffffffffffffff
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
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.00516ab0
push eax
push 0x640ab8
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0x640b10
lea ecx, [ebp - 0x1fc0]
call fcn.00516e30
lea eax, [esi + 0x1b4]
push eax
lea ecx, [ebp - 0x207c]
call fcn.00516e00
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x527213
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed664
lea ecx, [ebp - 0x207c]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20f4]
call fcn.00516b20
push 1
lea ecx, [ebp - 0x20f4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2530]
call fcn.004017b0
test al, al
je 0x526bc1
nop dword [eax]
cmp byte [edi], 0
jne 0x527213
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x2530]
call fcn.00401810
push eax
push 0x5ed514
lea ecx, [ebp - 0x207c]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 0x10
lea ecx, [ebp - 0x2530]
call fcn.00401800
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x526a9d
push 1
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.0047f7b0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x527213
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0
push 0x640b48
jmp 0x526b53
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x526bae
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov ecx, eax
call fcn.00502170
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x526bae
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x612588
push 1
lea ecx, [ebp - 0x2530]
call fcn.00401810
push eax
push 0x612588
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x527213
lea ecx, [ebp - 0x2530]
call fcn.00401760
test al, al
jne 0x526a00
mov eax, dword [ebp - 0x2f6c]
test eax, eax
jne 0x526c00
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x640b68
push dword [esi + 0x1c]
lea ecx, [ebp - 0x1fa0]
push 0x640ba0
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
jmp 0x526c33
cmp eax, 1
jne 0x526c0e
push 0
push 0x640c00
jmp 0x526c28
cmp eax, 2
jne 0x526c1c
push 0
push 0x640cc0
jmp 0x526c28
cmp eax, 3
jne 0x526c39
push 0
push 0x640d70
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f6c]
mov ecx, dword [ebp - 0x2f54]
inc eax
mov dword [ebp - 0x2f6c], eax
cmp eax, ecx
jl 0x526785
mov eax, dword [ebp - 0x2f58]
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f60]
push 0
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
push 0xc
lea ecx, [ebp - 0x214c]
call fcn.00401d00
lea eax, [esi + 0x268]
push eax
lea ecx, [ebp - 0x214c]
call fcn.00516ec0
push 0xc
lea ecx, [ebp - 0x2140]
mov byte [ebp - 4], 0x30
call fcn.00401d00
lea eax, [esi + 0x274]
push eax
lea ecx, [ebp - 0x2140]
call fcn.00516ec0
lea ecx, [esi + 0x238]
mov byte [ebp - 4], 0x31
call fcn.00516cc0
inc eax
lea ecx, [ebp - 0x214c]
push eax
call fcn.00515800
lea ecx, [esi + 0x238]
call fcn.00516cc0
inc eax
lea ecx, [ebp - 0x2140]
push eax
call fcn.00515800
xor esi, esi
mov dword [ebp - 0x2f54], esi
cmp dword [ebp - 0x2f74], esi
jbe 0x52724b
xor eax, eax
mov dword [ebp - 0x2f70], eax
xor edx, edx
mov ecx, dword [ebp - 0x2f8c]
div dword [ebp - 0x2f74]
push 0
add eax, dword [ebp - 0x2f58]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x5271fd
xor eax, eax
mov dword [ebp - 0x2f64], 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 0x526e16
push 0x640e24
push esi
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x6407fc
lea ecx, [ebp - 0x1fb0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x214c]
call fcn.00516ab0
push eax
push 0x5ed514
push esi
lea ecx, [ebp - 0x2084]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x207c]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.00516ab0
push eax
push 0x640e60
push esi
lea ecx, [ebp - 0x2030]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x640838
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x640e98
jmp 0x526ed7
push 0x640eb0
push esi
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x6407fc
lea ecx, [ebp - 0x1fb0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2140]
call fcn.00516ab0
push eax
push 0x5ed514
push esi
lea ecx, [ebp - 0x2084]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x207c]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x2090]
call fcn.00516ab0
push eax
push 0x640ef8
push esi
lea ecx, [ebp - 0x2030]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x640838
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x640f3c
push esi
lea ecx, [ebp - 0x2030]
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x63ee00
lea ecx, [ebp - 0x1fc0]
call fcn.00516b20
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
mov ecx, dword [ebp - 0x2f8c]
push eax
push 0xffffffffffffffff
call fcn.004e73c0
cmp byte [edi], 0
jne 0x5271fd
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x5271fd
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed664
lea ecx, [ebp - 0x207c]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20f4]
call fcn.00516b20
push 1
lea ecx, [ebp - 0x20f4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2530]
call fcn.004017b0
test al, al
je 0x527161
nop dword [eax]
cmp byte [edi], 0
jne 0x5271fd
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x2530]
call fcn.00401810
push eax
push 0x5ed514
lea ecx, [ebp - 0x207c]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 0x10
lea ecx, [ebp - 0x2530]
call fcn.00401800
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x527031
push 1
call fcn.00516ab0
mov ecx, dword [ebp - 0x2f78]
push eax
call fcn.0047f7b0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x5271fd
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0
push 0x640b48
jmp 0x5270ed
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
call fcn.00516ab0
mov esi, dword [ebp - 0x2f78]
mov ecx, esi
push eax
call fcn.00520d90
test al, al
je 0x527148
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov ecx, eax
call fcn.00502170
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x527148
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x612588
push 1
lea ecx, [ebp - 0x2530]
call fcn.00401810
push eax
push 0x612588
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x5271fd
lea ecx, [ebp - 0x2530]
call fcn.00401760
test al, al
jne 0x526f90
mov esi, dword [ebp - 0x2f54]
cmp dword [ebp - 0x2f64], 0
lea ecx, [ebp - 0x2030]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
jne 0x527189
push 0x640f60
jmp 0x52718e
push 0x640fc8
push esi
call fcn.00403630
mov ecx, eax
call fcn.00516ab0
push eax
push 0x640ba0
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2f64]
inc eax
mov dword [ebp - 0x2f64], eax
cmp eax, 2
jb 0x526d30
mov eax, dword [ebp - 0x2f70]
inc esi
mov ecx, dword [ebp - 0x2f60]
add eax, ecx
mov dword [ebp - 0x2f54], esi
mov dword [ebp - 0x2f70], eax
cmp esi, dword [ebp - 0x2f74]
jb 0x526d00
jmp 0x527251
lea ecx, [ebp - 0x2140]
call fcn.00516d50
lea ecx, [ebp - 0x214c]
call fcn.00516d50
lea ecx, [ebp - 0x2530]
call fcn.004016b0
lea ecx, [ebp - 0x20f4]
call fcn.00516d50
lea ecx, [ebp - 0x2090]
call fcn.00516d50
lea ecx, [ebp - 0x207c]
call fcn.00516d50
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
mov ecx, dword [ebp - 0x2f60]
mov eax, dword [ebp - 0x2f84]
mov esi, dword [ebp - 0x2f58]
sub eax, ecx
mov ecx, dword [ebp - 0x2f8c]
add esi, eax
push 0
push esi
mov dword [ebp - 0x2f58], esi
call fcn.004e73c0
lea ecx, [ebp - 0x2140]
call fcn.00516d50
lea ecx, [ebp - 0x214c]
call fcn.00516d50
lea ecx, [ebp - 0x2530]
call fcn.004016b0
lea ecx, [ebp - 0x20f4]
call fcn.00516d50
lea ecx, [ebp - 0x2090]
call fcn.00516d50
lea ecx, [ebp - 0x207c]
mov byte [ebp - 4], 0x1f
call fcn.00516d50
mov eax, dword [ebp - 0x2f94]
jmp 0x5272c9
mov esi, dword [ebp - 0x2f58]
test al, al
jns 0x5279f0
mov ecx, dword [ebp - 0x2f8c]
push 0x64103c
push esi
call fcn.004e73c0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x641078
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0x18
lea ecx, [ebp - 0x2118]
call fcn.00401d30
lea ecx, [ebp - 0x2118]
call fcn.00513f30
mov eax, dword [ebp - 0x2f84]
cdq
sub eax, edx
mov byte [ebp - 4], 0x32
sar eax, 1
xor esi, esi
mov dword [ebp - 0x2f50], eax
mov dword [ebp - 0x2f54], esi
nop word [eax + eax]
mov ecx, esi
imul ecx, eax
push 0
shr ecx, 2
add ecx, dword [ebp - 0x2f58]
push ecx
mov ecx, dword [ebp - 0x2f8c]
call fcn.004e73c0
cmp byte [edi], 0
jne 0x5275cf
test esi, esi
jne 0x5273ba
lea eax, [ebp - 0x1fb0]
push eax
push 0x60a598
push 0x60a640
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
push 8
lea ecx, [ebp - 0x1fb0]
call fcn.00514ca0
push esi
push 0x5f014c
jmp 0x52740c
cmp esi, 1
jne 0x5273c6
push 0x60a5bc
jmp 0x5273d7
cmp esi, 2
jne 0x5273d2
push 0x60a5ec
jmp 0x5273d7
push 0x60a618
lea ecx, [ebp - 0x1f94]
call fcn.00516e30
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x60a6b0
lea ecx, [ebp - 0x1fa4]
call fcn.005112a0
push 0
push 0x5f3998
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2118]
call fcn.00513c80
xor esi, esi
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f64], esi
call fcn.00513e20
test eax, eax
je 0x527606
nop
push 3
push 1
push esi
lea ecx, [ebp - 0x2118]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b80
mov ecx, eax
call fcn.00514ca0
mov ecx, eax
call fcn.005167b0
test al, al
jne 0x5275ec
push 0x60a704
lea ecx, [ebp - 0x1f94]
call fcn.00516de0
test al, al
jne 0x5275ec
push 0
push 1
push 1
push 0
push str..dll
lea ecx, [ebp - 0x1f94]
call fcn.00515510
lea ecx, [ebp - 0x1f94]
mov esi, eax
call fcn.00516cc0
sub eax, 3
cmp esi, eax
je 0x5274dc
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.00515270
mov edx, dword [ebp - 0x2f98]
lea ecx, [ebp - 0x1f94]
push 3
call fcn.005097e0
test al, al
jne 0x527519
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x635e14
lea ecx, [ebp - 0x1f94]
call fcn.005150b0
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov ecx, dword [ebp - 0x2f78]
push eax
call fcn.00520d90
test al, al
je 0x5275e6
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov esi, dword [ebp - 0x2f64]
lea ecx, [ebp - 0x2118]
push eax
push 0x612588
push esi
call fcn.00513e30
push eax
push 0x641110
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
je 0x5275ec
lea ecx, [ebp - 0x2118]
call fcn.00513e90
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
mov esi, dword [ebp - 0x2f64]
inc esi
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f64], esi
call fcn.00513e20
cmp esi, eax
jb 0x527440
mov esi, dword [ebp - 0x2f54]
mov eax, dword [ebp - 0x2f50]
inc esi
mov dword [ebp - 0x2f54], esi
cmp esi, 4
jb 0x527360
push 0
push 0x641140
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov eax, dword [ebp - 0x2f58]
add eax, dword [ebp - 0x2f50]
mov ecx, dword [ebp - 0x2f8c]
push 0x6411e8
push eax
mov dword [ebp - 0x2f58], eax
call fcn.004e73c0
push 0
push 0x641220
lea ecx, [ebp - 0x2010]
call fcn.00504a30
mov esi, dword [ebp - 0x2f78]
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 0x60bea0
push dword [esi + 0x24]
call fcn.00516b20
push 0x20
lea ecx, [ebp - 0x224c]
call fcn.00401e10
push 0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x224c]
call fcn.00505a10
push 0xc
lea ecx, [ebp - 0x20b8]
mov byte [ebp - 4], 0x33
call fcn.00401d00
lea ecx, [ebp - 0x20b8]
call fcn.00403d20
push 4
lea ecx, [ebp - 0x2e40]
mov byte [ebp - 4], 0x34
call fcn.00401d20
push 8
push 0x6412b4
lea ecx, [ebp - 0x2e40]
call fcn.00401a10
push 0
lea eax, [ebp - 0x1fb0]
mov byte [ebp - 4], 0x35
push eax
lea ecx, [ebp - 0x224c]
call fcn.005051d0
test eax, eax
je 0x52794c
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2118]
call fcn.00513c80
mov ecx, eax
call fcn.00513e20
test eax, eax
je 0x52794c
lea ecx, [ebp - 0x2118]
mov dword [ebp - 0x2f60], 0
call fcn.00513e20
test eax, eax
je 0x52794c
mov dword [ebp - 0x2f64], 0
push 0
lea ecx, [ebp - 0x2118]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f64]
div ecx
lea ecx, [esi + 0x14b0]
add eax, dword [ebp - 0x2f58]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x5279b8
push dword [ebp - 0x2f60]
lea ecx, [ebp - 0x2118]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.00514ca0
lea ecx, [ebp - 0x1fb0]
call fcn.005167b0
test al, al
jne 0x527923
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516d60
cmp word [eax], 0x23
je 0x527923
push 0
push 8
lea eax, [ebp - 0x20b8]
push eax
push dword [ebp - 0x2e40]
lea ecx, [ebp - 0x1fb0]
call fcn.00514280
lea ecx, [ebp - 0x1f94]
call fcn.00516d20
lea ecx, [ebp - 0x20b8]
call fcn.00403df0
cmp eax, 3
jae 0x527842
push 0x6412d0
lea ecx, [ebp - 0x1fcc]
call fcn.00516e30
jmp 0x5278bb
push 1
lea ecx, [ebp - 0x20b8]
call fcn.00404020
push eax
mov ecx, esi
call fcn.0043c010
cmp al, 1
jne 0x527883
push 0x6367a4
push 2
lea ecx, [ebp - 0x20b8]
call fcn.00404020
mov ecx, eax
call fcn.00516de0
test al, al
jne 0x527923
push 0x636710
jmp 0x527897
test al, al
jne 0x52788e
push 0x6366d4
jmp 0x527897
cmp al, 2
jne 0x5278a2
push 0x636758
lea ecx, [ebp - 0x1fcc]
call fcn.00516e30
push 2
lea ecx, [ebp - 0x20b8]
call fcn.00404020
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516e00
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x641310
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x5279b8
mov eax, dword [ebp - 0x2f50]
lea ecx, [ebp - 0x2118]
inc dword [ebp - 0x2f60]
add dword [ebp - 0x2f64], eax
call fcn.00513e20
cmp dword [ebp - 0x2f60], eax
jb 0x527771
mov ecx, dword [ebp - 0x2f84]
sub ecx, dword [ebp - 0x2f50]
mov eax, dword [ebp - 0x2f58]
add eax, ecx
lea ecx, [esi + 0x14b0]
push 0
push eax
call fcn.004e73c0
push 0
push 0x641340
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x2e40]
call fcn.00401ac0
lea ecx, [ebp - 0x20b8]
call fcn.00404040
lea ecx, [ebp - 0x224c]
call fcn.00401df0
lea ecx, [ebp - 0x2118]
mov byte [ebp - 4], 0x1f
call fcn.00513e90
mov eax, dword [ebp - 0x2f94]
jmp 0x5279f6
lea ecx, [ebp - 0x2e40]
call fcn.00401ac0
lea ecx, [ebp - 0x20b8]
call fcn.00404040
lea ecx, [ebp - 0x224c]
call fcn.00401df0
lea ecx, [ebp - 0x2118]
call fcn.00513e90
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
mov esi, dword [ebp - 0x2f78]
test eax, 0x100
je 0x527d3e
push 1
mov dword [ebp - 0x2eb0], esi
lea ecx, [ebp - 0x2eac]
push dword [esi + 0x1c]
call fcn.00516e80
mov byte [ebp - 4], 0x36
lea ecx, [ebp - 0x2e98]
mov byte [ebp - 0x2ea0], 0
mov dword [ebp - 0x2e9c], 0
call fcn.004015e0
push 0x2c
lea eax, [ebp - 0x2e94]
mov byte [ebp - 4], 0x37
push 0
push eax
call fcn.00420570
add esp, 0xc
lea ecx, [ebp - 0x2e68]
call fcn.004015e0
xorps xmm0, xmm0
mov byte [ebp - 4], 0x38
lea ecx, [ebp - 0x2e58]
movq qword [ebp - 0x2e60], xmm0
call fcn.00401510
push 8
lea ecx, [ebp - 0x2e4c]
mov byte [ebp - 4], 0x39
call fcn.00401d40
push 0x6398f4
push str.ntdll.dll
lea ecx, [ebp - 0x2e4c]
call fcn.004045a0
lea ecx, [ebp - 0x2e4c]
mov byte [ebp - 4], 0x3a
call fcn.00404580
test al, al
je 0x527d24
mov eax, dword [ebp - 0x2f68]
mov ecx, eax
and ecx, 8
or ecx, 2
mov dword [ebp - 0x2e9c], ecx
test al, 2
jne 0x527ad1
or ecx, 0x10
mov dword [ebp - 0x2e9c], ecx
test al, 0x10
je 0x527ade
or ecx, 4
mov dword [ebp - 0x2e9c], ecx
push 8
push 0x639910
lea ecx, [ebp - 0x1fb0]
call fcn.00514540
push eax
lea ecx, [ebp - 0x2e98]
call fcn.004043d0
lea eax, [ebp - 0x2010]
mov dword [ebp - 0x2e94], 0
xorps xmm0, xmm0
mov dword [ebp - 0x2e90], eax
mov eax, dword [ebp - 0x2e48]
lea ecx, [ebp - 0x2e68]
push 0x800
mov byte [ebp - 0x2e8c], 0
movlpd qword [ebp - 0x2e88], xmm0
movlpd qword [ebp - 0x2e80], xmm0
movlpd qword [ebp - 0x2e78], xmm0
mov dword [ebp - 0x2e70], eax
mov dword [ebp - 0x2e6c], 0x800
call fcn.00403dc0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea eax, [ebp - 0x2274]
push dword [ebp - 0x2f7c]
lea ecx, [ebp - 0x1fa0]
mov dword [ebp - 0x2e5c], eax
push 0x6413f0
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0x639a80
push 0xffffffffffffffb0
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
push 4
lea ecx, [ebp - 0x2e3c]
call fcn.00401d20
push 0
push 0
lea eax, [ebp - 0x2eb0]
push eax
push 0x4854a0
push 0
push 0
call dword [0x5cd380]
push eax
lea ecx, [ebp - 0x2e3c]
call fcn.00401520
mov byte [ebp - 4], 0x3b
xor edx, edx
mov ecx, dword [ebp - 0x2e3c]
call fcn.004fc850
test al, al
je 0x527c42
mov esi, 1
nop dword [eax + eax]
cmp byte [edi], 0
movzx eax, byte [ebp - 0x2ea0]
cmovne eax, esi
push 0xa
mov byte [ebp - 0x2ea0], al
call dword [0x5cd438]
mov ecx, dword [ebp - 0x2e3c]
xor edx, edx
call fcn.004fc850
test al, al
jne 0x527c10
mov esi, dword [ebp - 0x2f78]
cmp byte [ebp - 0x2ea0], 0
mov ecx, 0x6414e0
mov eax, 0x6414a8
cmove eax, ecx
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.00516e30
push fcn.00516d50
push fcn.00516ef0
push 2
push 0xc
lea eax, [ebp - 0x48]
push eax
call fcn.0041ec45
mov byte [ebp - 4], 0x3c
lea ecx, [ebp - 0x48]
push dword [ebp - 0x2e84]
push dword [ebp - 0x2e88]
call fcn.00515ed0
push dword [ebp - 0x2e7c]
lea ecx, [ebp - 0x3c]
push dword [ebp - 0x2e80]
call fcn.00515ed0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x641530
lea ecx, [ebp - 0x3c]
call fcn.00516ab0
push eax
push 0x641588
lea ecx, [ebp - 0x48]
call fcn.00516ab0
push eax
push 0x5f36f4
lea ecx, [ebp - 0x1fb0]
call fcn.00515270
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0x6415c0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
push fcn.00516d50
push 2
push 0xc
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x3b
push eax
call fcn.0041eb04
lea ecx, [ebp - 0x2e3c]
call fcn.00401540
lea ecx, [ebp - 0x2e4c]
call fcn.00402fa0
lea ecx, [ebp - 0x2eb0]
mov byte [ebp - 4], 0x1f
call fcn.00404460
mov eax, dword [ebp - 0x2f94]
test eax, 0x200
je 0x528063
lea ecx, [ebp - 0x2f38]
call fcn.004044b0
mov eax, dword [ebp - 0x2f68]
lea ecx, [esi + 0x14b0]
push 0x641668
mov byte [ebp - 4], 0x3d
push 0xffffffffffffffb0
mov dword [ebp - 0x2f38], eax
call fcn.004e73c0
push edi
push dword [esi + 0x1c]
mov ecx, esi
call fcn.0051faa0
mov dword [ebp - 0x2f30], eax
mov dword [ebp - 0x2f2c], edx
cmp eax, 0xffffffff
jne 0x527da0
cmp edx, eax
je 0x528021
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x6416c8
push 0x64174c
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
mov eax, dword [ebp - 0x2fe0]
xorps xmm0, xmm0
mov dword [ebp - 0x2f08], eax
lea eax, [ebp - 0x2214]
push eax
movlpd qword [ebp - 0x2f28], xmm0
movlpd qword [ebp - 0x2f20], xmm0
movlpd qword [ebp - 0x2f18], xmm0
movlpd qword [ebp - 0x2f10], xmm0
call dword [0x5cd2d4]
lea ecx, [ebp - 0x2214]
call fcn.00505ae0
mov dword [ebp - 0x2f04], eax
lea ecx, [ebp - 0x2130]
lea eax, [ebp - 0x22d8]
mov dword [ebp - 0x2f00], eax
lea eax, [ebp - 0x2010]
push 0xc
mov dword [ebp - 0x2efc], eax
call fcn.00401d00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64178c
lea ecx, [esi + 0x154]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2130]
call fcn.00516e40
push 0x20
lea ecx, [ebp - 0x220c]
mov byte [ebp - 4], 0x3e
call fcn.00401e10
push 0
push 0x22
lea ecx, [ebp - 0x2130]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x220c]
call fcn.00505a10
push dword [ebp - 0x2f9c]
lea eax, [ebp - 0x220c]
mov byte [ebp - 4], 0x3f
lea ecx, [ebp - 0x2ef4]
mov dword [ebp - 0x2ef8], eax
call fcn.00404400
push 0x6417c0
push 0
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
mov eax, dword [ebp - 0x2f68]
shr eax, 5
push edi
not al
and al, 1
mov ecx, esi
movzx eax, al
push eax
lea eax, [ebp - 0x2f38]
push eax
push dword [esi + 0x1c]
call fcn.0051fd00
push 0
push 0x641810
lea ecx, [ebp - 0x2010]
mov byte [ebp - 0x2f49], al
call fcn.00504a30
push 0
lea ecx, [ebp - 0x220c]
call fcn.005048f0
push 0
push 0x20
lea ecx, [ebp - 0x2130]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x220c]
call fcn.005053b0
test eax, eax
je 0x527fe0
push 0
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x220c]
call fcn.005051d0
cmp eax, 2
jbe 0x527fe0
cmp dword [ebp - 0x2f30], 0xffffffff
jne 0x527f81
cmp dword [ebp - 0x2f2c], 0xffffffff
je 0x52800b
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6418c0
push 0x641930
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0x641980
lea ecx, [ebp - 0x2010]
call fcn.00504a30
push 0
lea ecx, [ebp - 0x220c]
call fcn.005048f0
push 2
lea ecx, [ebp - 0x2130]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.005b1020
cmp byte [ebp - 0x2f49], 0
jne 0x528038
lea ecx, [ebp - 0x220c]
call fcn.00401df0
lea ecx, [ebp - 0x2130]
call fcn.00516d50
lea ecx, [ebp - 0x2f38]
call fcn.004044f0
mov byte [ebp - 0x2f49], 2
jmp 0x528f40
lea ecx, [ebp - 0x220c]
call fcn.00401df0
lea ecx, [ebp - 0x2130]
call fcn.00516d50
lea ecx, [ebp - 0x2f38]
mov byte [ebp - 4], 0x1f
call fcn.004044f0
mov eax, dword [ebp - 0x2f94]
test eax, 0x400
je 0x528f39
mov ecx, dword [ebp - 0x2fc4]
call fcn.00513870
cmp eax, 9
jle 0x528f39
push 0xc
lea ecx, [ebp - 0x20ac]
call fcn.00401d00
lea ecx, [ebp - 0x20ac]
call fcn.00516ef0
push 0xc
lea ecx, [ebp - 0x209c]
mov byte [ebp - 4], 0x40
call fcn.00401d00
lea ecx, [ebp - 0x209c]
call fcn.00516ef0
push 0xc
lea ecx, [ebp - 0x2100]
mov byte [ebp - 4], 0x41
call fcn.00401d00
lea ecx, [ebp - 0x2100]
call fcn.00516ef0
lea ecx, [ebp - 0x1fc0]
mov byte [ebp - 4], 0x42
call fcn.00516d20
push 0x18
lea ecx, [ebp - 0x20d0]
call fcn.00401d30
push 0
push 0x5f36f4
push dword [ebp - 0x2fc4]
lea ecx, [ebp - 0x20d0]
call fcn.00513eb0
lea ecx, [ebp - 0x20d0]
mov byte [ebp - 4], 0x43
call fcn.00513e20
cmp eax, 1
jbe 0x528f0d
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
test eax, eax
je 0x528f0d
xor esi, esi
xor edi, edi
nop word [eax + eax]
push esi
lea ecx, [ebp - 0x20d0]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
test eax, eax
je 0x5281d8
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.00514ca0
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516d60
cmp word [eax], 0x3c
jne 0x5281b9
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
dec eax
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.00516d60
cmp word [eax], 0x3e
jne 0x5281b9
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.00516e00
jmp 0x5281d8
lea ecx, [ebp - 0x1fc0]
call fcn.00516cc0
test eax, eax
je 0x5281d8
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
test eax, eax
je 0x5281d8
inc edi
lea ecx, [ebp - 0x20d0]
inc esi
call fcn.00513e20
cmp esi, eax
jb 0x528140
mov esi, dword [ebp - 0x2f78]
test edi, edi
mov edi, dword [ebp - 0x2f88]
je 0x528f0d
push 0x641a30
push 0
lea ecx, [esi + 0x14b0]
call fcn.004e73c0
lea ecx, [ebp - 0x20d0]
mov dword [ebp - 0x2f5c], 0
call fcn.00513e20
test eax, eax
je 0x528efb
mov dword [ebp - 0x2f8c], 0
nop dword [eax]
lea eax, [ebp - 0x1fc0]
push eax
lea ecx, [ebp - 0x20ac]
call fcn.00516e00
push dword [ebp - 0x2f5c]
lea ecx, [ebp - 0x20d0]
call fcn.00513e30
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00516e30
push 3
lea ecx, [ebp - 0x1fb0]
call fcn.00514ca0
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
test eax, eax
je 0x5282f5
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516d60
cmp word [eax], 0x3c
jne 0x5282f5
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
dec eax
lea ecx, [ebp - 0x1fb0]
push eax
call fcn.00516d60
cmp word [eax], 0x3e
jne 0x5282f5
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.00516e00
push 0
push 1
push 1
push 0
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fb0]
call fcn.00515510
mov dword [ebp - 0x2f50], eax
jmp 0x5282ff
mov dword [ebp - 0x2f50], 0
push 0x641a88
lea ecx, [ebp - 0x1fc0]
call fcn.00516da0
test al, al
je 0x528320
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516530
push 0x641a88
lea ecx, [ebp - 0x1fc0]
call fcn.00516de0
test al, al
je 0x52866b
cmp dword [ebp - 0x2f50], 0
je 0x528358
push 0
push 0x641aa0
lea ecx, [ebp - 0x2010]
call fcn.00504a30
jmp 0x528cf7
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
cmp eax, 3
jle 0x528cf7
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516e00
push 1
lea ecx, [ebp - 0x1f94]
call fcn.00516840
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x641ac8
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x641aec
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f8c]
div ecx
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528fcb
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esi + 0x154]
push 0x641b0c
call fcn.00516ab0
push eax
push 0x5f4840
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641b28
push dword [esi + 0x24]
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 4
lea ecx, [ebp - 0x2e20]
call fcn.00401d20
push 0
push 0
push dword [esi + 0x24]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov edx, eax
xor ecx, ecx
call fcn.00503d10
push eax
lea ecx, [ebp - 0x2e20]
call fcn.00401520
lea ecx, [ebp - 0x2e20]
mov byte [ebp - 4], 0x44
call fcn.00401590
test al, al
jne 0x528612
mov ecx, dword [ebp - 0x2e20]
xor edx, edx
call fcn.004fc850
test al, al
je 0x5284b5
cmp byte [edi], 0
jne 0x528fa8
push 5
call dword [0x5cd438]
mov ecx, dword [ebp - 0x2e20]
xor edx, edx
call fcn.004fc850
test al, al
jne 0x528493
lea eax, [ebp - 0x20a0]
mov dword [ebp - 0x20a0], 0
push eax
push dword [ebp - 0x2e20]
call dword [0x5cd3d0]
cmp dword [ebp - 0x20a0], 0
jne 0x528612
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x641b4c
lea ecx, [esi + 0x154]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 0x20
lea ecx, [ebp - 0x226c]
call fcn.00401e10
push 0
push 0x20
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x226c]
call fcn.00505a10
push 0
lea eax, [ebp - 0x1f94]
mov byte [ebp - 4], 0x45
push eax
lea ecx, [ebp - 0x226c]
call fcn.005051d0
push 0
lea ecx, [ebp - 0x226c]
call fcn.005048f0
push 2
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.005b1020
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x64082c
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641b60
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 8
push 0
push 0x5ed51c
push 0x641ba0
lea ecx, [ebp - 0x1f94]
call fcn.00514230
lea eax, [ebp - 0x1f94]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0
push 0x5f36f4
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x226c]
call fcn.00401df0
lea ecx, [ebp - 0x2e20]
mov byte [ebp - 4], 0x43
call fcn.00401540
jmp 0x528cf7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x641bc8
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641c18
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea ecx, [ebp - 0x2e20]
mov byte [ebp - 4], 0x43
call fcn.00401540
jmp 0x528cf7
push 0x641c28
lea ecx, [ebp - 0x1fc0]
call fcn.00516de0
test al, al
je 0x528a16
cmp dword [ebp - 0x2f50], 0
je 0x5286d4
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x641c38
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
jmp 0x528cf7
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
cmp eax, 1
jle 0x528cf7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x62251c
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641cc4
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea ecx, [ebp - 0x1fa0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f8c]
div ecx
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528fcb
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x641cf4
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641cfc
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
push 0xc
lea ecx, [ebp - 0x2158]
call fcn.00401d00
lea eax, [ebp - 0x1fb0]
push eax
lea ecx, [ebp - 0x2158]
call fcn.00516ec0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5ed664
push 0x5c
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x46
call fcn.00514c50
mov ecx, eax
call fcn.00514bf0
mov ecx, eax
call fcn.00515270
push 0x258
lea ecx, [ebp - 0x29e0]
call fcn.00401d60
lea ecx, [ebp - 0x29e0]
call fcn.00401630
push 1
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x47
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x29e0]
call fcn.004017b0
test al, al
je 0x5289e5
cmp byte [edi], 0
jne 0x528fb5
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 1
lea ecx, [ebp - 0x29e0]
call fcn.00401810
push eax
push 0x5ed514
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
push 0x10
lea ecx, [ebp - 0x29e0]
call fcn.00401800
lea ecx, [ebp - 0x1f94]
test eax, eax
je 0x5288d2
push 1
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.0047f7b0
mov ecx, eax
and ecx, edx
cmp ecx, 0xffffffff
je 0x528fb5
push 4
push 0
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x640b48
jmp 0x528988
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5289d0
push 4
push 0
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
mov ecx, eax
call fcn.00502170
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
push dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
test al, al
je 0x5289d0
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1f94]
call fcn.00516ab0
push eax
push 0x641d28
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
cmp byte [edi], 0
jne 0x528fb5
lea ecx, [ebp - 0x29e0]
call fcn.00401760
test al, al
jne 0x528831
jmp 0x5289f7
push 0
push 0x641d50
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x29e0]
call fcn.004016b0
lea ecx, [ebp - 0x2158]
mov byte [ebp - 4], 0x43
call fcn.00516d50
jmp 0x528cf7
push 0x641db0
lea ecx, [ebp - 0x1fc0]
call fcn.00516de0
test al, al
je 0x528bc8
cmp dword [ebp - 0x2f50], 0
je 0x528a7f
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push dword [ebp - 0x2f90]
lea ecx, [ebp - 0x1fa0]
push dword [ebp - 0x2f7c]
push 0x641dc0
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
jmp 0x528cf7
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
cmp eax, 3
jle 0x528cf7
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x6101f8
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641e40
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea ecx, [ebp - 0x1fa0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f8c]
div ecx
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528fcb
lea eax, [ebp - 0x1fe4]
push eax
lea eax, [ebp - 0x1fd8]
push eax
lea eax, [ebp - 0x1fcc]
push eax
mov eax, dword [ebp - 0x2f68]
lea ecx, [ebp - 0x1fb0]
and eax, 0x18
push eax
call fcn.00516ab0
push eax
mov ecx, esi
call fcn.00520d90
push 4
push 0
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
mov ecx, eax
call fcn.00502170
push edx
push eax
lea ecx, [ebp - 0x2024]
call fcn.00515950
push 0
push 0
push 0
push 0
push 0x5f36f4
lea ecx, [ebp - 0x1fe4]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fd8]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fcc]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x2024]
call fcn.00516ab0
push eax
push 0x612588
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
push 0x641d28
lea ecx, [ebp - 0x1fa0]
call fcn.00516b20
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
jmp 0x528cf7
push 0x641e58
lea ecx, [ebp - 0x1fc0]
call fcn.00516de0
test al, al
je 0x528cf7
cmp dword [ebp - 0x2f50], 0
je 0x528c89
push 1
push 0x641e70
lea ecx, [ebp - 0x1fa0]
call fcn.00516b80
lea eax, [ebp - 0x1fa0]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
lea ecx, [ebp - 0x1fc0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20ac]
call fcn.00516da0
test al, al
je 0x528cf7
push 1
push 0x5f8aa0
lea ecx, [ebp - 0x1fa0]
call fcn.00516b80
lea ecx, [ebp - 0x1fa0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f8c]
div ecx
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
lea ecx, [ebp - 0x209c]
call fcn.00516d20
lea ecx, [ebp - 0x2100]
call fcn.00516d20
jmp 0x528cf7
lea ecx, [ebp - 0x1fb0]
call fcn.00516cc0
cmp eax, 3
jle 0x528cf7
push 0
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
mov ecx, eax
xor edx, edx
mov eax, dword [ebp - 0x2f8c]
div ecx
lea ecx, [esi + 0x14b0]
push eax
call fcn.004e73c0
cmp byte [edi], 0
jne 0x528fcb
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f3998
lea ecx, [ebp - 0x1fb0]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x209c]
call fcn.00515270
lea ecx, [ebp - 0x209c]
call fcn.00516cc0
cmp eax, 4
jle 0x528ed7
push 0x641e58
lea ecx, [ebp - 0x20ac]
call fcn.00516de0
test al, al
je 0x528ed7
lea ecx, [ebp - 0x20ac]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x1fc0]
call fcn.00516da0
test al, al
jne 0x528d56
lea ecx, [ebp - 0x20d0]
call fcn.00513e20
dec eax
cmp dword [ebp - 0x2f5c], eax
jne 0x528ed7
mov ecx, esi
call fcn.0045df50
or eax, 8
lea ecx, [ebp - 0x2100]
push eax
push 0
push 0
push 0xffff
call fcn.005162e0
push eax
lea ecx, [ebp - 0x209c]
call fcn.00516ab0
mov edx, 0x6047d8
mov ecx, eax
call fcn.004db2d0
push 0x18
lea ecx, [ebp - 0x222c]
call fcn.00401d30
lea ecx, [ebp - 0x222c]
call fcn.00513f30
push 0x18
lea ecx, [ebp - 0x21ec]
mov byte [ebp - 4], 0x48
call fcn.00401d30
lea ecx, [ebp - 0x21ec]
call fcn.00513f30
push 0
push 0x5f3998
lea ecx, [ebp - 0x209c]
mov byte [ebp - 4], 0x49
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x222c]
call fcn.00513c80
push 0
push 0x5f3998
lea ecx, [ebp - 0x2100]
call fcn.00516ab0
push eax
lea ecx, [ebp - 0x21ec]
call fcn.00513c80
lea ecx, [ebp - 0x222c]
call fcn.00513e20
lea ecx, [ebp - 0x21ec]
mov dword [ebp - 0x2f60], eax
call fcn.00513e20
cmp eax, dword [ebp - 0x2f60]
jae 0x528e38
lea ecx, [ebp - 0x21ec]
call fcn.00513e20
mov dword [ebp - 0x2f60], eax
jmp 0x528e3e
mov eax, dword [ebp - 0x2f60]
mov dword [ebp - 0x2f9c], 0
test eax, eax
je 0x528ebd
mov edi, dword [ebp - 0x2f9c]
mov esi, dword [ebp - 0x2f60]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x5f36f4
push edi
lea ecx, [ebp - 0x21ec]
call fcn.00513e30
push eax
push 0x612588
push edi
lea ecx, [ebp - 0x222c]
call fcn.00513e30
push eax
push 0x641f0c
lea ecx, [ebp - 0x1f94]
call fcn.00516b20
lea eax, [ebp - 0x1f94]
push eax
lea ecx, [ebp - 0x2010]
call fcn.00504c50
inc edi
cmp edi, esi
jb 0x528e58
mov edi, dword [ebp - 0x2f88]
mov esi, dword [ebp - 0x2f78]
lea ecx, [ebp - 0x21ec]
call fcn.00513e90
lea ecx, [ebp - 0x222c]
mov byte [ebp - 4], 0x43
call fcn.00513e90
inc dword [ebp - 0x2f5c]
lea ecx, [ebp - 0x20d0]
add dword [ebp - 0x2f8c], 0x64
call fcn.00513e20
cmp dword [ebp - 0x2f5c], eax
jb 0x528240
push 0
push 0x641f30
lea ecx, [ebp - 0x2010]
call fcn.00504a30
lea ecx, [ebp - 0x20d0]
call fcn.00513e90
lea ecx, [ebp - 0x2100]
call fcn.00516d50
lea ecx, [ebp - 0x209c]
call fcn.00516d50
lea ecx, [ebp - 0x20ac]
call fcn.00516d50
mov byte [ebp - 0x2f49], 1
lea ecx, [ebp - 0x2e2c]
call fcn.00401ac0
lea ecx, [ebp - 0x2164]
call fcn.00516d50
lea ecx, [ebp - 0x2040]
call fcn.00516d50
lea ecx, [ebp - 0x2070]
call fcn.00516d50
lea ecx, [ebp - 0x2e14]
call fcn.00511770
lea ecx, [ebp - 0x2018]
call fcn.00403650
lea ecx, [ebp - 0x2084]
call fcn.00403650
lea ecx, [ebp - 0x2058]
call fcn.00403650
lea ecx, [ebp - 0x2030]
call fcn.00403650
jmp 0x52294f
lea ecx, [ebp - 0x2e20]
call fcn.00401540
jmp 0x528fcb
lea ecx, [ebp - 0x29e0]
call fcn.004016b0
lea ecx, [ebp - 0x2158]
call fcn.00516d50
lea ecx, [ebp - 0x20d0]
call fcn.00513e90
lea ecx, [ebp - 0x2100]
call fcn.00516d50
lea ecx, [ebp - 0x209c]
call fcn.00516d50
lea ecx, [ebp - 0x20ac]
call fcn.00516d50
mov byte [ebp - 0x2f49], 2
jmp 0x528f40