Function at 0x40b6c0
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x11c
push ebx
push ebp
push edi
lea eax, [esp + 0x10]
push eax
push 0xf003f
xor ebx, ebx
push ebx
push str.SoftwareSoftnyxGunBoundWC
push reloc.WS2_32.dll_bind
mov dword [esp + 0x24], ebx
mov dword [esp + 0x30], ebx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
jne 0x40bce6
mov eax, dword [esp + 0x10]
push esi
lea ecx, [esp + 0x10]
push ecx
push 0x87a858
lea edx, [esp + 0x20]
push edx
push ebx
push 0x57aa34
push eax
mov dword [esp + 0x28], 0x80
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87b370
lea edx, [esp + 0x20]
push edx
push ebx
push str.Port
mov esi, 4
push eax
mov dword [esp + 0x28], esi
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87aaec
lea edx, [esp + 0x20]
push edx
push ebx
push str.LastServer
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x879c58
lea edx, [esp + 0x20]
push edx
push ebx
push str.Location
push eax
mov dword [esp + 0x28], 0x400
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87aef0
lea edx, [esp + 0x20]
push edx
push ebx
push str.Screen
push eax
call ebp
test eax, eax
je 0x40b7c1
xor eax, eax
jmp 0x40b7b0
mov cl, byte [eax + 0x879c58]
mov byte [eax + 0x87aef0], cl
inc eax
test cl, cl
jne 0x40b7b0
xor eax, eax
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b7c3
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b7d7
mov ecx, dword [str.fourword.txt]
mov edx, dword [0x57aa00]
mov eax, dword [0x57aa04]
mov dword [edi], ecx
mov cl, byte [0x57aa08]
mov dword [edi + 4], edx
lea edx, [esp + 0x2c]
mov dword [edi + 8], eax
push edx
mov byte [edi + 0xc], cl
call fcn.0054ac46
add esp, 4
xor eax, eax
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b810
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b824
mov eax, dword [str.itemdata.dat]
mov ecx, dword [0x57a9f0]
mov edx, dword [0x57a9f4]
mov dword [edi], eax
mov al, byte [0x57a9f8]
mov dword [edi + 4], ecx
lea ecx, [esp + 0x2c]
mov dword [edi + 8], edx
push ecx
mov byte [edi + 0xc], al
call fcn.0054ac46
add esp, 4
xor eax, eax
lea esp, [esp]
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b860
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b874
mov edx, dword [str.specialdata.dat]
mov eax, dword [0x57a9e0]
mov ecx, dword [0x57a9e4]
mov dword [edi], edx
mov edx, dword [0x57a9e8]
mov dword [edi + 4], eax
lea eax, [esp + 0x2c]
mov dword [edi + 8], ecx
push eax
mov dword [edi + 0xc], edx
call fcn.0054ac46
add esp, 4
xor eax, eax
lea ecx, [ecx]
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b8b0
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b8c4
mov ecx, dword [str.stage.dat]
mov edx, dword [0x57a9d4]
mov ax, word [0x57a9d8]
mov dword [edi], ecx
lea ecx, [esp + 0x2c]
mov dword [edi + 4], edx
push ecx
mov word [edi + 8], ax
call fcn.0054ac46
add esp, 4
xor eax, eax
jmp 0x40b900
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b900
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b914
mov edx, dword [str.characterdata.dat]
mov eax, dword [0x57a9c0]
mov ecx, dword [0x57a9c4]
mov dword [edi], edx
mov edx, dword [0x57a9c8]
mov dword [edi + 4], eax
mov ax, word [0x57a9cc]
mov dword [edi + 8], ecx
lea ecx, [esp + 0x2c]
mov dword [edi + 0xc], edx
push ecx
mov word [edi + 0x10], ax
call fcn.0054ac46
add esp, 4
xor eax, eax
jmp 0x40b960
mov cl, byte [eax + 0x879c58]
mov byte [esp + eax + 0x2c], cl
inc eax
test cl, cl
jne 0x40b960
lea edi, [esp + 0x2c]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40b974
mov edx, dword [str.GunboundMSG.txt]
mov eax, dword [0x57a9b0]
mov ecx, dword [0x57a9b4]
mov dword [edi], edx
mov edx, dword [0x57a9b8]
mov dword [edi + 4], eax
lea eax, [esp + 0x2c]
mov dword [edi + 8], ecx
push eax
mov dword [edi + 0xc], edx
call fcn.0054ac46
push str.C:ERROR.txt
call fcn.0054ac46
add esp, 8
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x20]
push eax
push ebx
push str.Version
push ecx
mov dword [esp + 0x28], esi
call ebp
mov ecx, dword [0x5d9718]
mov edx, dword [esp + 0x24]
mov ebx, 1
push ebx
lea eax, [esp + 0x2c]
push eax
push ecx
mov dword [esp + 0x34], edx
call fcn.004c7160
mov esi, eax
call fcn.0040ad80
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x8ca388
lea eax, [esp + 0x20]
push eax
push 0
push str.ShootingMode
push ecx
mov dword [esp + 0x28], ebx
call ebp
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x8ca38c
lea eax, [esp + 0x20]
push eax
push 0
push str.MouseSpeed
mov edi, 4
push ecx
mov dword [esp + 0x28], edi
call ebp
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x23]
push eax
lea ecx, [esp + 0x20]
push ecx
push 0
push str.MidiMode
push edx
mov dword [esp + 0x28], ebx
call ebp
mov al, byte [esp + 0x1f]
test al, al
lea ecx, [esp + 0x10]
sete al
push ecx
mov byte [0x8ca390], al
mov dword [esp + 0x14], edi
push 0x8ca394
lea edx, [esp + 0x20]
mov eax, dword [esp + 0x1c]
push edx
push 0
push str.MusicVolume
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8ca398
lea edx, [esp + 0x20]
push edx
push 0
push str.EffectVolume
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87b378
lea edx, [esp + 0x20]
push edx
push 0
push str.AutoRefresh
push eax
call ebp
test eax, eax
je 0x40bad6
mov dword [0x87b378], ebx
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8ca39e
lea edx, [esp + 0x20]
push edx
push 0
push str.Effect3D
push eax
mov dword [esp + 0x28], ebx
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8ca39f
lea edx, [esp + 0x20]
push edx
push 0
push str.Background
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8ca39c
lea edx, [esp + 0x20]
push edx
push 0
push str.MusicUse
push eax
call ebp
test eax, eax
je 0x40bb3b
mov byte [0x8ca39c], bl
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8ca39d
lea edx, [esp + 0x20]
push edx
push 0
push str.EffectUse
push eax
call ebp
test eax, eax
je 0x40bb62
mov byte [0x8ca39d], bl
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8f4831
lea edx, [esp + 0x20]
push edx
push 0
push str.ShowTurn
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8f4830
lea edx, [esp + 0x20]
push edx
push 0
push str.ShowMoon
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8f5ad8
lea edx, [esp + 0x20]
push edx
push 0
push str.ShowOnlineUser
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x8f5b0c
lea edx, [esp + 0x20]
push edx
push 0
push str.InterfaceMode
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87b2f0
lea edx, [esp + 0x20]
push edx
push 0
push str.GameName
mov esi, 0x80
push eax
mov dword [esp + 0x28], esi
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x879a10
lea edx, [esp + 0x20]
push edx
push 0
push str.ChannelName
push eax
call ebp
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x87b3c0
lea edx, [esp + 0x20]
push edx
push 0
push str.Language
push eax
mov dword [esp + 0x28], edi
call ebp
lea ecx, [esp + 0x10]
push ecx
push 0x879990
lea edx, [esp + 0x20]
push edx
mov dword [0x87b3c0], ebx
mov dword [esp + 0x1c], esi
push 0
mov eax, dword [esp + 0x24]
push str.BuddyIP
push eax
call ebp
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x20]
push eax
push 0
push str.BuddyPort
push ecx
mov dword [esp + 0x28], edi
call ebp
test eax, eax
je 0x40bc91
mov word [0x87b37c], 0x20a0
jmp 0x40bc9d
mov dx, word [esp + 0x24]
mov word [0x87b37c], dx
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x87aaf0
lea ecx, [esp + 0x20]
push ecx
push 0
push str.ShopURL
push edx
mov dword [esp + 0x28], esi
call ebp
test eax, eax
je 0x40bcd8
mov ecx, 0xa
mov esi, str.http:__shop.gunbound.com_avatar_web.asp
mov edi, 0x87aaf0
rep movsd dword es:[edi], dword [esi]
mov edi, 4
mov eax, dword [esp + 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop esi
jmp 0x40bceb
mov edi, 4
lea ecx, [esp + 0x1c]
push ecx
push 0xf003f
push 0
push str.SoftwareSoftnyxGameBuddy
push reloc.WS2_32.dll_bind
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40bd5c
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xc]
push edx
push 0x87a458
lea eax, [esp + 0x1c]
push eax
push 0
push str.Executable
push ecx
mov dword [esp + 0x24], 0x400
call ebp
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0xc]
push edx
push 0x87aad8
lea eax, [esp + 0x1c]
push eax
push 0
push 0x57a864
push ecx
mov dword [esp + 0x24], edi
call ebp
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop ebp
pop ebx
add esp, 0x11c
ret