Function at 0x508ed0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b1164
mov eax, dword fs:[0]
push eax
sub esp, 0x308
mov eax, dword [0x63a404]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x224], edx
mov dword [ebp - 0x21c], ecx
mov eax, dword [ebp + 8]
push ecx
push 0x63e010
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 0x25c], eax
call fcn.0054bb30
lea ecx, [ebp - 0x2f0]
mov dword [ebp - 4], 0
call fcn.0054c6b0
mov edx, eax
mov dword [ebp - 0x2b8], edx
test edx, edx
je 0x509c6f
mov ecx, dword [edx + 4]
xor ebx, ebx
mov dword [ebp - 0x230], ebx
test ecx, ecx
je 0x509c6f
cmp ebx, ecx
jae 0x509c5d
mov edi, dword [edx]
test edi, edi
je 0x509c5d
mov edi, dword [edi + ebx*4]
test edi, edi
je 0x509c5d
xor esi, esi
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x228], 0
mov dword [ebp - 0x22c], 0
mov dword [ebp - 0x260], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x258], esi
mov dword [ebp - 0x254], esi
push 0x63de78
lea ecx, [ebp - 0x250]
mov byte [ebp - 4], 1
call fcn.00544950
mov byte [ebp - 4], 2
mov eax, dword [edi]
test eax, eax
je 0x509c07
push esi
push esi
push esi
push esi
lea ecx, [ebp - 0x234]
push ecx
push esi
push esi
push esi
push esi
push esi
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x509c07
cmp dword [ebp - 0x234], eax
jbe 0x509c07
push 8
call fcn.0056e7bf
mov ebx, eax
add esp, 4
mov dword [ebp - 0x238], ebx
mov dword [ebx], esi
mov dword [ebx + 4], esi
cmp dword [ebp - 0x234], esi
jbe 0x5090ac
nop dword [eax]
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.00573560
add esp, 0xc
mov dword [ebp - 0x218], 0xff
lea eax, [ebp - 0x218]
push 0
push 0
push 0
push 0
push eax
lea eax, [ebp - 0x210]
push eax
push esi
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x5090a3
push 8
call fcn.0056e7bf
add esp, 4
mov dword [ebp - 0x2fc], eax
lea ecx, [ebp - 0x210]
mov byte [ebp - 4], 3
push ecx
mov ecx, eax
call fcn.00544840
push 0
push eax
mov ecx, ebx
mov byte [ebp - 4], 2
call fcn.005444a0
inc esi
cmp esi, dword [ebp - 0x234]
jb 0x509030
cmp dword [edi], 0
je 0x509122
push 2
mov dword [ebp - 0x270], 0
call fcn.0056ea97
mov esi, eax
add esp, 4
mov dword [ebp - 0x274], esi
test esi, esi
je 0x5090d8
xor eax, eax
mov word [esi], ax
jmp 0x5090e2
mov dword [ebp - 0x270], 0
lea eax, [ebp - 0x258]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x274]
mov ecx, edi
push eax
call fcn.0054c540
mov byte [ebp - 4], 2
test esi, esi
je 0x509118
push 2
push esi
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov ecx, dword [ebp - 0x238]
xor ebx, ebx
mov dword [ebp - 0x218], ebx
mov eax, dword [ecx + 4]
test eax, eax
je 0x50965c
cmp ebx, eax
jae 0x50964a
mov esi, dword [ecx]
test esi, esi
je 0x50964a
mov esi, dword [esi + ebx*4]
test esi, esi
je 0x50964a
push 0x63dcd0
mov ecx, esi
call fcn.005463a0
test al, al
je 0x50922d
push esi
lea ecx, [ebp - 0x28c]
call fcn.005448d0
mov byte [ebp - 4], 5
cmp dword [edi], 0
je 0x5091ea
lea ecx, [ebp - 0x28c]
mov dword [ebp - 0x214], 4
call fcn.00545f90
mov ebx, eax
lea eax, [ebp - 0x214]
push eax
push 0
lea eax, [ebp - 0x2a8]
push eax
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x5091db
cmp dword [ebp - 0x2a8], 4
jne 0x5091db
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x2ac]
push eax
push 0
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push ebx
call fcn.0056ee0c
mov ebx, dword [ebp - 0x218]
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x28c]
test eax, eax
je 0x50920d
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x28c], 0
mov ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x288], 0
call fcn.00544a40
mov dword [ebp - 0x214], eax
jmp 0x50961b
push 0x63dec0
mov ecx, esi
call fcn.005463a0
test al, al
je 0x509302
push esi
lea ecx, [ebp - 0x294]
call fcn.005448d0
mov byte [ebp - 4], 6
cmp dword [edi], 0
je 0x5092bf
lea ecx, [ebp - 0x294]
mov dword [ebp - 0x220], 4
call fcn.00545f90
mov ebx, eax
lea eax, [ebp - 0x220]
push eax
push 0
lea eax, [ebp - 0x2b0]
push eax
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x5092b0
cmp dword [ebp - 0x2b0], 4
jne 0x5092b0
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x2b4]
push eax
push 0
push 0
push ebx
push dword [edi]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
push ebx
call fcn.0056ee0c
mov ebx, dword [ebp - 0x218]
add esp, 4
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x294]
test eax, eax
je 0x5092e2
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x294], 0
mov ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x290], 0
call fcn.00544a40
mov dword [ebp - 0x220], eax
jmp 0x50961b
push 0x63db98
mov ecx, esi
call fcn.005463a0
test al, al
je 0x5093cc
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
push esi
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 7
call fcn.005448d0
lea eax, [ebp - 0x240]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x29c]
mov ecx, edi
push eax
call fcn.0054c540
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x29c]
test eax, eax
je 0x509376
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x29c], 0
cmp dword [ebp - 0x23c], 0
mov dword [ebp - 0x298], 0
jle 0x50939a
lea ecx, [ebp - 0x240]
call fcn.00544c60
mov dword [ebp - 0x228], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x240]
test ecx, ecx
je 0x5093bd
push 2
push ecx
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], 0
jmp 0x50961b
push 0x63ddb0
mov ecx, esi
call fcn.005463a0
test al, al
je 0x509496
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
push esi
lea ecx, [ebp - 0x2a4]
mov byte [ebp - 4], 9
call fcn.005448d0
lea eax, [ebp - 0x248]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x2a4]
mov ecx, edi
push eax
call fcn.0054c540
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x509440
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x2a4], 0
cmp dword [ebp - 0x244], 0
mov dword [ebp - 0x2a0], 0
jle 0x509464
lea ecx, [ebp - 0x248]
call fcn.00544c60
mov dword [ebp - 0x22c], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x248]
test ecx, ecx
je 0x509487
push 2
push ecx
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x248], 0
mov dword [ebp - 0x244], 0
jmp 0x50961b
push 0x63db80
mov ecx, esi
call fcn.005463a0
test al, al
je 0x509517
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x278], 0
push esi
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0xb
call fcn.005448d0
lea eax, [ebp - 0x27c]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0x2e8]
mov ecx, edi
push eax
call fcn.0054c540
lea ecx, [ebp - 0x2e8]
mov byte [ebp - 4], 0xb
call fcn.004ffe40
cmp dword [ebp - 0x278], 0
jle 0x50950c
lea ecx, [ebp - 0x27c]
call fcn.00544c60
mov dword [ebp - 0x260], eax
lea ecx, [ebp - 0x27c]
jmp 0x509612
push 0x63dca8
mov ecx, esi
call fcn.005463a0
test al, al
je 0x509596
mov dword [ebp - 0x26c], 0
mov dword [ebp - 0x268], 0
push esi
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0xd
call fcn.005448d0
lea eax, [ebp - 0x26c]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x2c8]
mov ecx, edi
push eax
call fcn.0054c540
lea ecx, [ebp - 0x2c8]
mov byte [ebp - 4], 0xd
call fcn.004ffe40
cmp dword [ebp - 0x268], 0
jle 0x50958e
lea eax, [ebp - 0x26c]
push eax
lea ecx, [ebp - 0x250]
call fcn.00545420
lea ecx, [ebp - 0x26c]
jmp 0x509612
push 0x63dc20
mov ecx, esi
call fcn.005463a0
test al, al
je 0x50961b
mov dword [ebp - 0x284], 0
mov dword [ebp - 0x280], 0
push esi
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0xf
call fcn.005448d0
lea eax, [ebp - 0x284]
mov byte [ebp - 4], 0x10
push eax
lea eax, [ebp - 0x2d0]
mov ecx, edi
push eax
call fcn.0054c540
lea ecx, [ebp - 0x2d0]
mov byte [ebp - 4], 0xf
call fcn.004ffe40
cmp dword [ebp - 0x280], 0
jle 0x50960c
lea ecx, [ebp - 0x284]
call fcn.00544c60
mov dword [ebp - 0x264], eax
lea ecx, [ebp - 0x284]
mov byte [ebp - 4], 2
call fcn.004ffe40
mov ecx, dword [esi]
test ecx, ecx
je 0x509632
push 2
push ecx
call fcn.0056ea89
add esp, 8
mov dword [esi], 0
push 8
push esi
mov dword [esi + 4], 0
call fcn.0056ea89
mov ecx, dword [ebp - 0x238]
add esp, 8
mov eax, dword [ecx + 4]
inc ebx
mov dword [ebp - 0x218], ebx
cmp ebx, eax
jb 0x509143
mov eax, dword [ecx]
test eax, eax
je 0x509679
push 4
push eax
call fcn.0056ea89
mov ecx, dword [ebp - 0x238]
add esp, 8
mov dword [ecx], 0
push 8
push ecx
mov dword [ecx + 4], 0
call fcn.0056ea89
mov ebx, dword [ebp - 0x214]
add esp, 8
test ebx, ebx
je 0x509afc
mov eax, dword [ebp - 0x220]
test eax, eax
je 0x509ad3
mov esi, dword [ebp - 0x228]
test esi, esi
je 0x509ad3
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x509ad3
mov edi, dword [ebp - 0x224]
mov edx, edi
push ebx
push eax
call fcn.0050af90
add esp, 8
test al, al
je 0x509ad3
mov edx, dword [ebp - 0x21c]
mov ecx, ebx
push edi
call fcn.0050c590
add esp, 4
test al, al
je 0x50984b
mov edx, dword [ebp - 0x21c]
mov ecx, ebx
push edi
call fcn.0050f550
mov ebx, eax
add esp, 4
mov dword [ebp - 0x218], ebx
test ebx, ebx
je 0x509acd
push 0x63de60
push 0x63db78
mov ecx, ebx
call fcn.00534640
mov ecx, eax
call fcn.005463a0
test al, al
je 0x50983e
push str.data
lea ecx, [ebp - 0x304]
call fcn.005447b0
push eax
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00531970
lea ecx, [ebp - 0x304]
mov byte [ebp - 4], 2
mov bl, al
call fcn.004ffe40
test bl, bl
mov ebx, dword [ebp - 0x218]
je 0x50983e
mov ecx, ebx
call fcn.00533830
test eax, eax
je 0x50983e
push 0
mov ecx, ebx
call fcn.00531ee0
test al, al
je 0x50983e
push 0x63dbb8
mov ecx, ebx
call fcn.00534640
push 0x63e0f0
mov ecx, ebx
mov edi, eax
call fcn.00534640
push 0x63de58
mov ecx, ebx
mov esi, eax
call fcn.00534640
push edi
mov edi, dword [ebp - 0x224]
mov ecx, ebx
push esi
mov esi, dword [ebp - 0x21c]
push edi
push esi
push eax
push 0x63e060
call fcn.00534640
push eax
push 0x63dd30
mov ecx, ebx
call fcn.00534640
mov edx, dword [ebp - 0x230]
mov ecx, eax
call fcn.00507540
add esp, 0x18
test al, al
je 0x50983e
mov ecx, edi
call fcn.00544c60
mov ecx, esi
mov edi, eax
call fcn.00544c60
push 0x63de98
mov ecx, ebx
mov esi, eax
call fcn.00534640
push eax
push 0x63dd30
mov ecx, ebx
call fcn.00534640
push eax
push edi
push esi
push 0x63de58
mov ecx, ebx
call fcn.00534640
mov ecx, dword [ebp - 0x25c]
push eax
call fcn.005012f0
push ecx
mov ecx, ebx
call fcn.004feb60
jmp 0x509acd
push 0x61aa28
lea ecx, [ebp - 0x30c]
call fcn.005447b0
push eax
lea ecx, [ebp - 0x2d8]
mov byte [ebp - 4], 0x12
call fcn.005448d0
push ecx
lea eax, [ebp - 0x2d8]
mov byte [ebp - 4], 0x13
push eax
mov ecx, esi
call fcn.00545b60
push eax
push 0
mov ecx, esi
call fcn.00545be0
mov edi, eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x218], edi
call fcn.004ffe40
lea ecx, [ebp - 0x30c]
mov byte [ebp - 4], 2
call fcn.004ffe40
call fcn.00531340
push edi
lea ecx, [ebp - 0x2f8]
mov dword [ebp - 0x2c0], eax
call fcn.005448d0
push str.ready
lea ecx, [ebp - 0x2e0]
mov byte [ebp - 4], 0x14
call fcn.005447b0
push str.INSERT_INTO_games___s___s___s___s___s___s___s___s___s___s___s___s___s___s___s__VALUES___s___s___s___d___d___s___s___s___s___s___s___s___s___s___d__
lea ecx, [ebp - 0x314]
mov byte [ebp - 4], 0x15
call fcn.005447b0
mov esi, eax
push 1
push edi
push 0x63e200
push dword [ebp - 0x228]
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 0x16
push ebx
push ebx
push dword [ebp - 0x224]
push dword [ebp - 0x22c]
call fcn.00547ba0
push eax
lea eax, [ebp - 0x250]
push eax
push accept
push 0
lea eax, [ebp - 0x2e0]
push eax
push dword [ebp - 0x21c]
push ebx
push 0x63dcf0
push 0x63dd30
push 0x63def0
push 0x63e0f0
push 0x63e1b0
push 0x63de98
push 0x63dd98
push 0x63e060
push 0x63ddc0
push 0x63dbb8
push 0x63e048
push 0x63dd60
push 0x63de50
push 0x63db90
push 0x63de58
push esi
call fcn.00544d50
add esp, 0x7c
mov ebx, eax
lea ecx, [ebp - 0x314]
mov dword [ebp - 0x2bc], ebx
call fcn.004ffe40
lea ecx, [ebp - 0x2e0]
call fcn.004ffe40
lea ecx, [ebp - 0x2f8]
mov byte [ebp - 4], 2
call fcn.004ffe40
test ebx, ebx
je 0x509a8e
mov ecx, dword [0x647ac8]
test ecx, ecx
je 0x509a65
push 0
push ebx
call fcn.004ff490
test al, al
je 0x509a65
mov esi, dword [ebp - 0x214]
lea eax, [ebp - 0x250]
mov edx, dword [ebp - 0x230]
mov ecx, edi
push eax
push dword [ebp - 0x228]
push dword [ebp - 0x224]
push dword [ebp - 0x21c]
push esi
push dword [ebp - 0x22c]
call fcn.00507540
add esp, 0x18
test al, al
je 0x509a65
mov ecx, esi
call fcn.00544c60
mov ecx, edi
mov ebx, eax
call fcn.00544c60
mov ecx, dword [ebp - 0x224]
mov edi, eax
call fcn.00544c60
mov ecx, dword [ebp - 0x21c]
mov esi, eax
call fcn.00544c60
mov ecx, dword [ebp - 0x214]
push ebx
push edi
push esi
push eax
call fcn.00544c60
mov ecx, dword [ebp - 0x25c]
push eax
call fcn.005012f0
mov edi, dword [ebp - 0x218]
mov ebx, dword [ebp - 0x2bc]
mov eax, dword [ebx]
test eax, eax
je 0x509a7c
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x509aa0
push ecx
mov ecx, eax
call fcn.004feb60
test edi, edi
je 0x509acd
mov eax, dword [edi]
test eax, eax
je 0x509abb
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [edi], 0
push 8
push edi
mov dword [edi + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x214]
mov eax, dword [ebx]
test eax, eax
je 0x509aea
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x220]
test ebx, ebx
je 0x509b2f
mov eax, dword [ebx]
test eax, eax
je 0x509b1d
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x228]
test ebx, ebx
je 0x509b62
mov eax, dword [ebx]
test eax, eax
je 0x509b50
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x22c]
test ebx, ebx
je 0x509b95
mov eax, dword [ebx]
test eax, eax
je 0x509b83
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x260]
test ebx, ebx
je 0x509bc8
mov eax, dword [ebx]
test eax, eax
je 0x509bb6
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov ebx, dword [ebp - 0x264]
test ebx, ebx
je 0x509bfb
mov eax, dword [ebx]
test eax, eax
je 0x509be9
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebx], 0
push 8
push ebx
mov dword [ebx + 4], 0
call fcn.0056ea89
add esp, 8
mov esi, dword [ebp - 0x258]
mov ebx, dword [ebp - 0x230]
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x509c26
push 2
push eax
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x250], 0
mov dword [ebp - 0x24c], 0
mov byte [ebp - 4], 0
test esi, esi
je 0x509c4d
push 2
push esi
call fcn.0056ea89
add esp, 8
mov dword [ebp - 0x258], 0
mov edx, dword [ebp - 0x2b8]
mov dword [ebp - 0x254], 0
mov ecx, dword [edx + 4]
inc ebx
mov dword [ebp - 0x230], ebx
cmp ebx, ecx
jb 0x508f61
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x509cb4
cmp eax, 0x80000000
je 0x509ca7
cmp eax, 0x80000005
je 0x509ca7
cmp eax, reloc.WS2_32.dll_accept
je 0x509ca7
cmp eax, reloc.WS2_32.dll_bind
je 0x509ca7
cmp eax, 0x80000004
je 0x509ca7
cmp eax, reloc.WS2_32.dll_closesocket
je 0x509ca7
xor cl, cl
jmp 0x509ca9
mov cl, 1
test cl, cl
jne 0x509cb4
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056e5b3
mov esp, ebp
pop ebp
ret