Function at 0x100641e0
Capabilities:
Authenticate hmac
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
push esi
push edi
mov esi, ecx
mov dword [esp + 0x28], esi
mov byte [esp + 0x10], 0x6b
mov dl, 0x1f
xor dl, byte [esp + 0x10]
mov al, 9
xor al, byte [esp + 0x10]
mov dh, 7
mov byte [esp + 0x11], al
mov ah, 5
mov byte [esp + 0x12], dl
xorps xmm0, xmm0
mov dl, byte [esp + 0x10]
mov byte [esp + 0x27], 4
xor ah, dl
mov al, byte [esp + 0x27]
xor dh, dl
xor al, dl
mov byte [esp + 0xe], 0x18
mov byte [esp + 0x17], al
mov al, byte [esp + 0xe]
mov byte [esp + 0xc], 0xe
xor al, dl
mov byte [esp + 0x1a], 0
mov cl, 0x34
mov byte [esp + 0x18], al
mov al, byte [esp + 0xc]
mov ch, 8
xor cl, dl
mov byte [esp + 0x16], dh
xor ch, dl
mov byte [esp + 0x14], cl
mov byte [esp + 0x15], ch
xor al, dl
lea ecx, [esp + 0x11]
mov byte [esp + 0x13], ah
lea edx, [ecx + 1]
mov byte [esp + 0x19], al
mov byte [esp + 0x1a], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064284
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x5c], edi
je 0x10064326
test edi, edi
je 0x10064326
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064326
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x2c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064322
nop word [eax + eax]
cmp esi, dword [edi + 0xc4]
jne 0x100642dd
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064309
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x100642ef
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064359
mov edi, dword [esp + 0x5c]
cmp esi, dword [edi + 0xc4]
jne 0x1006431a
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x2c]
jne 0x100642d0
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 4], edi
cmp ecx, 0xf
jbe 0x10064369
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006435f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10064ffc
jmp 0x1006435f
mov esi, dword [esp + 0x28]
jmp 0x10064328
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov dl, 0x6c
mov dword [esp + 0x10], 0x508096c
mov dword [esp + 0x14], 0x91f3318
xor ecx, ecx
mov dword [esp + 0x18], 0x40f1e0d
mov byte [esp + 0x1c], 0
nop word [eax + eax]
lea eax, [esp + 0x11]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jae 0x100643a3
mov dl, byte [esp + 0x10]
jmp 0x10064390
xorps xmm0, xmm0
mov byte [esp + 0x1c], 0
lea ecx, [esp + 0x11]
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
lea edx, [ecx + 1]
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100643c7
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
mov ecx, dword [esi]
lea edx, [esp + 0x30]
call fcn.10017d20
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x10], eax
cmp ecx, 0xf
jbe 0x10064423
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10064419
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065001
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov byte [esp + 0x10], 0x36
mov cl, 0x42
xor cl, byte [esp + 0x10]
mov al, 0x54
xor al, byte [esp + 0x10]
mov ch, 0x45
mov byte [esp + 0x11], al
mov dl, 0x58
mov byte [esp + 0x12], cl
mov dh, 0x53
mov cl, byte [esp + 0x10]
mov ah, 0x69
mov byte [esp + 0xc], 0x57
xor dl, cl
mov al, byte [esp + 0xc]
xor ch, cl
xor al, cl
mov byte [esp + 0xe], 0x44
mov byte [esp + 0x17], al
xor dh, cl
mov al, byte [esp + 0xe]
xor ah, cl
xor al, cl
mov byte [esp + 0x27], 0x55
mov byte [esp + 0x18], al
xorps xmm0, xmm0
mov al, byte [esp + 0x27]
xor al, cl
mov byte [esp + 0xd], 0x5e
mov byte [esp + 0x19], al
mov al, byte [esp + 0xd]
xor al, cl
mov byte [esp + 0x15], ch
lea ecx, [esp + 0x11]
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], dl
mov byte [esp + 0x16], dh
lea edx, [ecx + 1]
mov byte [esp + 0x14], ah
mov byte [esp + 0x1a], al
mov byte [esp + 0x1b], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100644c5
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x10064566
test edi, edi
je 0x10064566
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064566
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064562
nop dword [eax + eax]
cmp esi, dword [edi + 0xc4]
jne 0x1006451d
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064549
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x1006452f
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064599
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x1006455a
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064510
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 8], edi
cmp ecx, 0xf
jbe 0x100645a9
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1006459f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065006
jmp 0x1006459f
mov esi, dword [esp + 0x28]
jmp 0x10064568
push ecx
push edx
call fcn.1007fa46
add esp, 8
movaps xmm0, xmmword [0x100aebc0]
xor ecx, ecx
movups xmmword [esp + 0x10], xmm0
mov al, byte [esp + 0x10]
xor byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0xe
jb 0x100645b7
xorps xmm0, xmm0
mov byte [esp + 0x1f], 0
lea ecx, [esp + 0x11]
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
lea edx, [ecx + 1]
mov dword [esp + 0x44], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100645f0
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x1006468c
test edi, edi
je 0x1006468c
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1006468c
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064688
cmp esi, dword [edi + 0xc4]
jne 0x10064643
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x1006466f
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x10064655
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100646bf
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x10064680
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064636
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x14], edi
cmp ecx, 0xf
jbe 0x100646cf
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100646c5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006500b
jmp 0x100646c5
mov esi, dword [esp + 0x28]
jmp 0x1006468e
push ecx
push edx
call fcn.1007fa46
add esp, 8
xor al, al
mov byte [esp + 0x27], al
movzx esi, al
mov cl, 0x5c
mov byte [esp + 0x10], 0x33
mov al, 0x7e
xor al, byte [esp + 0x10]
mov dl, 0x5d
xor cl, byte [esp + 0x10]
mov ch, 0x47
mov byte [esp + 0x11], al
mov dh, 0x56
mov byte [esp + 0x12], cl
mov ah, 0x40
mov cl, byte [esp + 0x10]
xorps xmm0, xmm0
mov byte [esp + 0xd], 0x41
xor dl, cl
mov al, byte [esp + 0xd]
xor dh, cl
xor al, cl
mov byte [esp + 0xc], 0x6c
mov byte [esp + 0x17], al
xor ah, cl
mov al, byte [esp + 0xc]
xor ch, cl
xor al, cl
mov byte [esp + 0xe], 0x16
mov byte [esp + 0x18], al
mov al, byte [esp + 0xe]
xor al, cl
mov byte [esp + 0xf], 0x57
mov byte [esp + 0x19], al
mov al, byte [esp + 0xf]
xor al, cl
mov byte [esp + 0x13], dl
push esi
sub esp, 0x18
mov byte [esp + 0x32], dh
mov edx, esp
mov byte [esp + 0x31], ch
lea ecx, [esp + 0x2d]
mov byte [esp + 0x37], 0
mov byte [esp + 0x30], ah
lea edi, [ecx + 1]
mov byte [esp + 0x36], al
movups xmmword [edx], xmm0
mov byte [esp + 0x37], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064780
sub ecx, edi
lea eax, [esp + 0x2d]
push ecx
push eax
mov ecx, edx
call fcn.10002540
lea eax, [esp + 0x4c]
push eax
call fcn.1000ae50
mov edi, dword [esp + 0x48]
add esp, 0x20
mov edx, eax
mov ecx, dword [edi]
call fcn.10017d20
mov ecx, dword [esp + 0x44]
mov dword [edi + esi*4 + 0x18], eax
cmp ecx, 0xf
jbe 0x100647ea
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100647e0
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10064ffc
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov al, byte [esp + 0x27]
inc al
mov byte [esp + 0x27], al
cmp al, 5
jb 0x100646d5
mov byte [esp + 0x10], 0x15
mov cl, 0x61
xor cl, byte [esp + 0x10]
mov al, 0x77
xor al, byte [esp + 0x10]
mov ch, 0x71
mov byte [esp + 0x11], al
mov dl, 0x7b
mov byte [esp + 0x12], cl
mov dh, 0x67
mov cl, byte [esp + 0x10]
mov ah, 0x4a
mov byte [esp + 0xf], 0x7a
xor dl, cl
mov al, byte [esp + 0xf]
xor ch, cl
xor al, cl
mov byte [esp + 0xd], 0x65
xor dh, cl
mov byte [esp + 0x17], al
mov al, byte [esp + 0xd]
xor ah, cl
xor al, cl
mov byte [esp + 0x15], ch
xorps xmm0, xmm0
mov byte [esp + 0x19], 0
lea ecx, [esp + 0x11]
mov byte [esp + 0x13], dl
mov byte [esp + 0x16], dh
lea edx, [ecx + 1]
mov byte [esp + 0x14], ah
mov byte [esp + 0x18], al
mov byte [esp + 0x19], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064880
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
mov ecx, dword [edi]
lea edx, [esp + 0x30]
call fcn.10017d20
mov ecx, dword [esp + 0x44]
mov dword [edi + 0xc], eax
cmp ecx, 0xf
jbe 0x100648dc
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100648d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065010
push ecx
push edx
call fcn.1007fa46
add esp, 8
movaps xmm0, xmmword [0x100af620]
xor ecx, ecx
movups xmmword [esp + 0x10], xmm0
mov word [esp + 0x20], 0x4f
mov al, byte [esp + 0x10]
xor byte [esp + ecx + 0x11], al
inc ecx
cmp ecx, 0x10
jb 0x100648f1
xorps xmm0, xmm0
mov byte [esp + 0x21], 0
lea ecx, [esp + 0x11]
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
lea edx, [ecx + 1]
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064923
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [edi]
mov dword [esp + 0x2c], edi
je 0x100649c2
test edi, edi
je 0x100649c2
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x100649c2
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x100649c2
nop dword [eax]
cmp esi, dword [edi + 0xc4]
jne 0x1006497d
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x100649a9
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x1006498f
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x100649c4
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x100649ba
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064970
xor edi, edi
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x2c], edi
cmp ecx, 0xf
jbe 0x10064a01
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100649f7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065015
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov al, 0x33
mov byte [esp + 0x10], 0x47
mov dl, al
mov byte [esp + 0xf], 0x31
xor al, byte [esp + 0x10]
mov cl, 0x3f
xor cl, byte [esp + 0x10]
mov dh, 0x22
mov byte [esp + 0x11], al
mov ch, 0x2b
mov al, byte [esp + 0xf]
mov ah, 0x18
mov byte [esp + 0x12], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0x10]
xor al, cl
mov byte [esp + 0xd], dh
mov byte [esp + 0x17], al
xor dl, cl
mov al, byte [esp + 0xd]
xor dh, cl
xor al, cl
mov byte [esp + 0xc], ch
xor ch, cl
mov byte [esp + 0x18], al
mov al, byte [esp + 0xc]
xor ah, cl
xor al, cl
mov byte [esp + 0x15], ch
lea ecx, [esp + 0x11]
mov byte [esp + 0x1a], 0
mov byte [esp + 0x13], dl
mov byte [esp + 0x16], dh
lea edx, [ecx + 1]
mov byte [esp + 0x14], ah
mov byte [esp + 0x19], al
mov byte [esp + 0x1a], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064a92
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x10064b2e
test edi, edi
je 0x10064b2e
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064b2e
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064b2a
cmp esi, dword [edi + 0xc4]
jne 0x10064ae5
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064b11
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x10064af7
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064b61
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x10064b22
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064ad8
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x30], edi
cmp ecx, 0xf
jbe 0x10064b71
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10064b67
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006501a
jmp 0x10064b67
mov esi, dword [esp + 0x28]
jmp 0x10064b30
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov al, 0x60
mov byte [esp + 0x10], 0x14
mov dl, al
mov byte [esp + 0xf], 0x79
xor al, byte [esp + 0x10]
mov cl, 0x6c
xor cl, byte [esp + 0x10]
mov dh, 0x75
mov byte [esp + 0x11], al
mov ch, 0x70
mov al, byte [esp + 0xf]
mov ah, 0x4b
mov byte [esp + 0x12], cl
xorps xmm0, xmm0
mov cl, byte [esp + 0x10]
xor al, cl
mov byte [esp + 0xd], dh
mov byte [esp + 0x17], al
xor dl, cl
mov al, byte [esp + 0xd]
xor ch, cl
xor al, cl
mov byte [esp + 0xc], 0x73
mov byte [esp + 0x18], al
xor dh, cl
mov al, byte [esp + 0xc]
xor ah, cl
xor al, cl
mov byte [esp + 0xe], 0x71
mov byte [esp + 0x19], al
mov al, byte [esp + 0xe]
xor al, cl
mov byte [esp + 0x15], ch
lea ecx, [esp + 0x11]
mov byte [esp + 0x1b], 0
mov byte [esp + 0x13], dl
mov byte [esp + 0x16], dh
lea edx, [ecx + 1]
mov byte [esp + 0x14], ah
mov byte [esp + 0x1a], al
mov byte [esp + 0x1b], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064c12
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x10064cae
test edi, edi
je 0x10064cae
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064cae
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064caa
cmp esi, dword [edi + 0xc4]
jne 0x10064c65
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064c91
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x10064c77
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064ce1
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x10064ca2
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064c58
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x34], edi
cmp ecx, 0xf
jbe 0x10064cf1
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10064ce7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1006501f
jmp 0x10064ce7
mov esi, dword [esp + 0x28]
jmp 0x10064cb0
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov dl, 0x45
mov dword [esp + 0x10], 0x313d3145
mov dword [esp + 0x14], 0x2320211a
xor ecx, ecx
mov dword [esp + 0x18], 0x20362b20
mov byte [esp + 0x1c], 0
lea eax, [esp + 0x11]
xor byte [eax + ecx], dl
inc ecx
cmp ecx, 0xb
jae 0x10064d25
mov dl, byte [esp + 0x10]
jmp 0x10064d12
xorps xmm0, xmm0
mov byte [esp + 0x1c], 0
lea ecx, [esp + 0x11]
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
lea edx, [ecx + 1]
mov dword [esp + 0x44], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064d50
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x10064dec
test edi, edi
je 0x10064dec
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064dec
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064de8
cmp esi, dword [edi + 0xc4]
jne 0x10064da3
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064dcf
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x10064db5
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064e1f
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x10064de0
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064d96
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x38], edi
cmp ecx, 0xf
jbe 0x10064e2f
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10064e25
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065024
jmp 0x10064e25
mov esi, dword [esp + 0x28]
jmp 0x10064dee
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov al, 0x57
mov byte [esp + 0x10], 0x23
mov dl, al
mov byte [esp + 0xc], al
xor al, byte [esp + 0x10]
mov cl, 0x5b
xor cl, byte [esp + 0x10]
mov ch, 0x4b
mov byte [esp + 0x11], al
mov dh, 0x46
mov byte [esp + 0x12], cl
mov ah, 0x7c
mov cl, byte [esp + 0x10]
xorps xmm0, xmm0
mov byte [esp + 0xf], 0x42
xor dl, cl
mov al, byte [esp + 0xf]
xor dh, cl
xor al, cl
mov byte [esp + 0xd], 0x4f
mov byte [esp + 0x17], al
xor ah, cl
mov al, byte [esp + 0xd]
xor al, cl
mov byte [esp + 0xe], ch
mov byte [esp + 0x18], al
xor ch, cl
mov al, byte [esp + 0xc]
xor al, cl
mov byte [esp + 0x15], ch
mov byte [esp + 0x19], al
mov al, byte [esp + 0xe]
xor al, cl
mov byte [esp + 0x1b], 0
lea ecx, [esp + 0x11]
mov byte [esp + 0x13], dl
mov byte [esp + 0x16], dh
lea edx, [ecx + 1]
mov byte [esp + 0x14], ah
mov byte [esp + 0x1a], al
mov byte [esp + 0x1b], 0
movaps xmmword [esp + 0x30], xmm0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10064ed0
sub ecx, edx
lea eax, [esp + 0x11]
push ecx
push eax
lea ecx, [esp + 0x38]
call fcn.10002540
cmp dword [esp + 0x40], 0
mov edi, dword [esi]
mov dword [esp + 0x2c], edi
je 0x10064f6c
test edi, edi
je 0x10064f6c
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064f6c
mov eax, dword [edi + 0xc4]
mov dword [esp + 0x5c], eax
mov esi, dword [eax]
cmp esi, eax
je 0x10064f68
cmp esi, dword [edi + 0xc4]
jne 0x10064f23
call fcn.10084bcf
mov edi, dword [esi + 8]
test edi, edi
je 0x10064f4f
cmp dword [edi + 0x78], 0x10
lea ecx, [edi + 0x64]
jb 0x10064f35
mov ecx, dword [ecx]
cmp dword [esp + 0x44], 0xf
lea eax, [esp + 0x30]
cmova eax, dword [esp + 0x30]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x10064f9f
mov edi, dword [esp + 0x2c]
cmp esi, dword [edi + 0xc4]
jne 0x10064f60
call fcn.10084bcf
mov esi, dword [esi]
cmp esi, dword [esp + 0x5c]
jne 0x10064f16
mov esi, dword [esp + 0x28]
xor edi, edi
mov ecx, dword [esp + 0x44]
mov dword [esi + 0x3c], edi
cmp ecx, 0xf
jbe 0x10064faf
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10064fa5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10065029
jmp 0x10064fa5
mov esi, dword [esp + 0x28]
jmp 0x10064f6e
push ecx
push edx
call fcn.1007fa46
add esp, 8
mov esi, dword [esi]
test esi, esi
je 0x10064fd1
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064fd1
lea ecx, [esi + 0xd4]
call fcn.100184a0
mov esi, eax
jmp 0x10064fd3
xor esi, esi
mov edi, dword [esp + 0x28]
mov edi, dword [edi]
test edi, edi
je 0x10064ff6
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x10064ff6
or esi, 0x28
mov ecx, edi
push esi
call dword [0x100ae558]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
call fcn.10084bdf
int3