Function at 0x4060d0
Capabilities:
Allocate or change rwx memory
Create thread
Execute shellcode via indirect call
Spawn thread to rwx shellcode

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
push esi
push edi
call fcn.00405ca0
cmp byte [0x489ec3], 0
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp - 4], 0
jne 0x4062cf
mov esi, dword [0x489ef8]
mov edx, dword [0x489fc8]
add esi, 0xfffffff0
add esi, edx
cmp edx, esi
jae 0x406159
nop dword [eax]
xor ecx, ecx
cmp byte [ecx + str.x____xxx_x____xx], 0x78
jne 0x406126
mov al, byte [ecx + 0x43d5c8]
cmp al, byte [ecx + edx]
jne 0x406154
inc ecx
cmp ecx, 0x10
jl 0x406112
test edx, edx
je 0x406159
mov eax, dword [edx + 1]
test eax, eax
je 0x406169
lea ecx, [edx + 5]
add ecx, eax
mov dword [ebp - 4], ecx
je 0x406169
lea eax, [ebp - 4]
mov edx, fcn.00403d60
push eax
call fcn.0040a820
add esp, 4
jmp 0x406169
inc edx
cmp edx, esi
jb 0x406110
push 0
push str.Error
push str.NGClient_Init__NULL___
push 0
call edi
mov esi, dword [0x489ef8]
mov edx, dword [0x489fc8]
add esi, 0xfffffff3
add esi, edx
cmp edx, esi
jae 0x4061c9
nop
xor ecx, ecx
cmp byte [ecx + str.x____xxx____x], 0x78
jne 0x406196
mov al, byte [ecx + 0x43d608]
cmp al, byte [ecx + edx]
jne 0x4061c4
inc ecx
cmp ecx, 0xd
jl 0x406182
test edx, edx
je 0x4061c9
mov eax, dword [edx + 1]
test eax, eax
je 0x4061d9
lea ecx, [edx + 5]
add ecx, eax
mov dword [ebp - 4], ecx
je 0x4061d9
lea eax, [ebp - 4]
mov edx, fcn.00403d70
push eax
call fcn.0040a820
add esp, 4
jmp 0x4061d9
inc edx
cmp edx, esi
jb 0x406180
push 0
push str.Error
push str.NGClient_Quit__NULL___
push 0
call edi
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffffef
add edx, esi
cmp esi, edx
jae 0x406260
nop
xor ecx, ecx
cmp byte [ecx + str.x____x____x_xxxxx], 0x78
jne 0x406206
mov al, byte [ecx + 0x43d648]
cmp al, byte [ecx + esi]
jne 0x40625b
inc ecx
cmp ecx, 0x11
jl 0x4061f2
test esi, esi
je 0x406260
mov eax, dword [esi + 1]
test eax, eax
je 0x406232
lea ecx, [esi + 5]
add ecx, eax
mov dword [ebp - 4], ecx
je 0x406232
lea eax, [ebp - 4]
mov edx, fcn.00403d70
push eax
call fcn.0040a820
add esp, 4
add esi, 5
je 0x406270
mov eax, dword [esi + 1]
test eax, eax
je 0x406270
lea ecx, [esi + 5]
add ecx, eax
mov dword [ebp - 4], ecx
je 0x406270
lea eax, [ebp - 4]
mov edx, fcn.00403d60
push eax
call fcn.0040a820
add esp, 4
jmp 0x406270
inc esi
cmp esi, edx
jb 0x4061f0
push 0
push str.Error
push str.Packet_Hack_Send__NULL___
push 0
call edi
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffff9b
add edx, esi
cmp esi, edx
jae 0x4062bf
xor ecx, ecx
cmp byte [ecx + str.xxxx_x____xx____xxx_xxxx____xxxxx_xx____xxxx_xx_xx_xx_xx_____xx_____xx_x_xx_xx_____xxx_x____xxx_xx_xx], 0x78
jne 0x40629b
mov al, byte [ecx + 0x43d6e0]
cmp al, byte [ecx + esi]
jne 0x4062ba
inc ecx
cmp ecx, 0x65
jl 0x406287
test esi, esi
je 0x4062bf
lea eax, [ebp - 4]
mov edx, 0x405220
push eax
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x4062cf
inc esi
cmp esi, edx
jb 0x406285
push 0
push str.Error
push str.Packet_Hack_Parse__NULL___
push 0
call edi
lea eax, [ebp - 4]
push eax
push 0x403d80
push str.InitializeGameLogManagerA
call fcn.0040a9d0
add esp, 0xc
lea eax, [ebp - 4]
push eax
push fcn.00403d70
push str.WriteStageLogA
call fcn.0040a9d0
add esp, 0xc
lea eax, [ebp - 4]
push eax
push fcn.00403d70
push str.WriteErrorLogA
call fcn.0040a9d0
add esp, 0xc
lea eax, [ebp - 4]
push eax
push 0x403d80
push str.FinalizeGameLogManager
call fcn.0040a9d0
add esp, 0xc
lea eax, [ebp - 4]
push eax
push 0x403d80
push str.SetUserSN
call fcn.0040a9d0
add esp, 0xc
cmp byte [0x489f3c], 0
jne 0x4066eb
mov esi, dword [0x489ef8]
mov edx, dword [0x489fc8]
add esi, 0xfffffff1
add esi, edx
cmp edx, esi
jae 0x4063a7
nop
xor ecx, ecx
cmp byte [ecx + str.x____x_xxx____x], 0x78
jne 0x406376
mov al, byte [ecx + 0x43d7e4]
cmp al, byte [ecx + edx]
jne 0x4063a2
inc ecx
cmp ecx, 0xf
jl 0x406362
test edx, edx
je 0x4063a7
mov eax, dword [edx + 1]
test eax, eax
je 0x4063b7
lea ecx, [edx + 5]
add ecx, eax
je 0x4063b7
push 0x489fd8
mov edx, 0x403da0
call fcn.0040a820
add esp, 4
jmp 0x4063b7
inc edx
cmp edx, esi
jb 0x406360
push 0
push str.Error
push str.SocketManagerConstructor__NULL___
push 0
call edi
mov ebx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add ebx, 0xfffffff6
add ebx, esi
cmp esi, ebx
jae 0x4064a0
mov edi, esi
neg edi
xor edx, edx
mov ecx, esi
nop dword [eax + eax]
cmp byte [edi + ecx + str.x____xxx_x], 0x78
jne 0x4063f9
mov al, byte [edi + ecx + 0x43d824]
cmp al, byte [ecx]
jne 0x406490
inc edx
inc ecx
cmp edx, 0xa
jl 0x4063e0
test esi, esi
je 0x40649a
mov eax, dword [esi + 1]
test eax, eax
je 0x406428
lea ecx, [esi + 5]
add ecx, eax
je 0x406428
push 0x489f10
mov edx, 0x403dc0
call fcn.0040a820
add esp, 4
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
mov ebx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add ebx, 0xfffffff6
add ebx, esi
cmp esi, ebx
jae 0x4064c1
mov edi, esi
neg edi
nop word [eax + eax]
xor edx, edx
mov ecx, esi
cmp byte [edi + ecx + str.xxxx____xx], 0x78
jne 0x406469
mov al, byte [edi + ecx + 0x43d858]
cmp al, byte [ecx]
jne 0x4064b5
inc edx
inc ecx
cmp edx, 0xa
jl 0x406454
test esi, esi
je 0x4064bb
push 0x489f00
mov edx, 0x403e00
mov ecx, esi
call fcn.0040a820
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 4
jmp 0x4064d1
inc esi
dec edi
cmp esi, ebx
jb 0x4063d4
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.Error
push str.ServerConnect__NULL___
push 0
call edi
jmp 0x40642e
inc esi
dec edi
cmp esi, ebx
jb 0x406450
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.Error
push str.HolePunch__SetServerInfo__NULL___
push 0
call edi
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xfffffff0
add edx, esi
cmp esi, edx
jae 0x40652b
nop word [eax + eax]
xor ecx, ecx
cmp byte [ecx + str.xxxxx_xxx_xxx_xx], 0x78
jne 0x406506
mov al, byte [ecx + 0x43d89c]
cmp al, byte [ecx + esi]
jne 0x406526
inc ecx
cmp ecx, 0x10
jl 0x4064f2
test esi, esi
je 0x40652b
push 0x489ee4
mov edx, 0x4059c0
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x40653b
inc esi
cmp esi, edx
jb 0x4064f0
push 0
push str.Error
push str.HolePunch__GetUserSocketInfo__NULL___
push 0
call edi
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.resource_zombi_ZombieSkillProperty_Dedi_ZombieSkillProperty_Crazy.csv
lea edx, [edx + ecx]
call fcn.0040ab60
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualProtect]
add esp, 8
mov dword [ebp - 0x18], 0x90909090
mov dword [ebp - 0x14], 0x53909090
lea esi, [eax - 0x2d]
mov dword [ebp - 0x10], 0x9090d98b
push 0x48a0e4
push 0x40
push 0x10
push esi
mov dword [ebp - 0xc], 0x90909090
call ebx
test eax, eax
je 0x4065a5
movups xmm0, xmmword [ebp - 0x18]
push 0x48a0e4
movups xmmword [esi], xmm0
push dword [0x48a0e4]
push 0x10
push esi
call ebx
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.resource_zombi_FireBombOption_Dedi.csv
lea edx, [edx + ecx]
call fcn.0040ab60
add esp, 8
mov dword [ebp - 0x18], 0x90909090
mov dword [ebp - 0x14], 0x8b909090
mov dword [ebp - 0x10], 0xd87589f0
lea esi, [eax - 0x14]
mov dword [ebp - 0xc], 0x90909090
push 0x48a0e4
push 0x40
push 0x12
push esi
mov word [ebp - 8], 0x9090
call ebx
test eax, eax
je 0x406617
movups xmm0, xmmword [ebp - 0x18]
mov ax, word [ebp - 8]
push 0x48a0e4
movups xmmword [esi], xmm0
mov word [esi + 0x10], ax
push dword [0x48a0e4]
push 0x12
push esi
call ebx
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xfffffff7
add edx, esi
cmp esi, edx
jae 0x40666b
nop dword [eax]
xor ecx, ecx
cmp byte [ecx + str.xxxxxxxxx], 0x78
jne 0x406646
mov al, byte [ecx + 0x43d8e4]
cmp al, byte [ecx + esi]
jne 0x406666
inc ecx
cmp ecx, 9
jl 0x406632
test esi, esi
je 0x40666d
push 0x489f2c
mov edx, 0x404100
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x40667d
inc esi
cmp esi, edx
jb 0x406630
xor esi, esi
push 0
push str.Error
push str.CreateStringTable__NULL___
push 0
call edi
mov eax, dword [esi + 0x72]
add esi, 0x76
mov edx, dword [0x489ef8]
add eax, esi
mov esi, dword [0x489fc8]
add edx, 0xfffffff3
add edx, esi
mov dword [0x489ebc], eax
cmp esi, edx
jae 0x4066db
nop
xor ecx, ecx
cmp byte [ecx + str.xxxxx____xxxx], 0x78
jne 0x4066b6
mov al, byte [ecx + 0x43d920]
cmp al, byte [ecx + esi]
jne 0x4066d6
inc ecx
cmp ecx, 0xd
jl 0x4066a2
test esi, esi
je 0x4066db
push 0x489eec
mov edx, 0x404690
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x4066eb
inc esi
cmp esi, edx
jb 0x4066a0
push 0
push str.Error
push str.LoadJson__NULL___
push 0
call edi
mov ebx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add ebx, 0xffffffbe
add ebx, esi
cmp esi, ebx
jae 0x406752
mov edi, esi
neg edi
xor edx, edx
mov ecx, esi
nop dword [eax + eax]
cmp byte [edi + ecx + str.xxxxx____x____xxxx_xxx_xx_xx_xx_xx____x____xx____xxxx_xx_xxx____xx], 0x78
jne 0x406725
mov al, byte [edi + ecx + 0x43d990]
cmp al, byte [ecx]
jne 0x40674c
inc edx
inc ecx
cmp edx, 0x42
jl 0x406710
test esi, esi
je 0x406752
push 0x489f1c
mov edx, 0x405930
mov ecx, esi
call fcn.0040a820
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 4
jmp 0x406768
inc esi
dec edi
cmp esi, ebx
jb 0x406704
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.Error
push str.LogToErrorLog__NULL___
push 0
call esi
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.ScreenFade
lea edx, [edx + ecx]
call fcn.0040ab60
add esp, 8
mov eax, dword [eax + 0xd]
mov dword [0x489fcc], eax
test eax, eax
jne 0x4067a5
push eax
push str.Error
push str.g_pEngine__NULL___
push eax
call esi
mov eax, dword [0x489fcc]
cmp byte [0x489f36], 0
mov dword [eax + 0x29c], 0x403d90
jne 0x4067ca
cmp byte [0x489ef2], 0
jne 0x4067ca
cmp byte [0x489ef0], 0
je 0x406828
mov ebx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add ebx, 0xffffff87
add ebx, esi
cmp esi, ebx
jae 0x406890
mov edi, esi
neg edi
nop word [eax + eax]
xor edx, edx
mov ecx, esi
cmp byte [edi + ecx + str.xxxx_x____xx____xxx____x____xxxx_xxxxx_xx____xxxx____xx_xxxx____xx____xx_xx________xx____xx____x_xx____xx_xxx____x____xxx], 0x78
jne 0x406809
mov al, byte [edi + ecx + 0x43da98]
cmp al, byte [ecx]
jne 0x406886
inc edx
inc ecx
cmp edx, 0x79
jl 0x4067f4
test esi, esi
je 0x406890
push 0x489fc4
mov edx, 0x4048c0
mov ecx, esi
call fcn.0040a820
add esp, 4
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
cmp byte [0x489f37], 0
je 0x4068bd
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffff97
add edx, esi
cmp esi, edx
jae 0x4068ad
xor ecx, ecx
cmp byte [ecx + str.xxxx_x____xx____xxx_xxxx____xxxxx_xx____xxxx_xx_xx_xx_____xx_____xx_x_xx_xx_____xxx_x____xxx_xx_x____xx_x], 0x78
jne 0x406866
mov al, byte [ecx + 0x43dba8]
cmp al, byte [ecx + esi]
jne 0x4068a8
inc ecx
cmp ecx, 0x69
jl 0x406852
test esi, esi
je 0x4068ad
push 0x489edc
mov edx, 0x405130
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x4068bd
inc esi
dec edi
cmp esi, ebx
jb 0x4067f0
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
push str.Error
push str.Packet_Metadata_Parse__NULL___
push 0
call ebx
jmp 0x40682e
inc esi
cmp esi, edx
jb 0x406850
push 0
push str.Error
push str.Packet_Quest_Parse__NULL___
push 0
call ebx
cmp byte [0x489f15], 0
je 0x40692b
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffffcb
add edx, esi
cmp esi, edx
jae 0x40691b
nop dword [eax + eax]
xor ecx, ecx
cmp byte [ecx + str.xxxx_x____xx____xx____x____x____xxxx_xxxxx_xx____xxxx], 0x78
jne 0x4068f6
mov al, byte [ecx + 0x43dc6c]
cmp al, byte [ecx + esi]
jne 0x406916
inc ecx
cmp ecx, 0x35
jl 0x4068e2
test esi, esi
je 0x40691b
push 0x489ec4
mov edx, 0x405160
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x40692b
inc esi
cmp esi, edx
jb 0x4068e0
push 0
push str.Error
push str.Packet_UMsg_Parse__NULL___
push 0
call ebx
cmp byte [0x489ef1], 0
je 0x40699e
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffff77
add edx, esi
cmp esi, edx
jae 0x40698e
nop dword [eax]
xor ecx, ecx
cmp byte [ecx + str.xxxx_x____xx____xxx____x____xxxx_xxxxx_xx____xxxx____xx_xx________xx____xx_xx________xx________xx____x_xx____xx_____xxx____x____xxx____xx], 0x78
jne 0x406966
mov al, byte [ecx + 0x43dd58]
cmp al, byte [ecx + esi]
jne 0x406989
inc ecx
cmp ecx, 0x89
jl 0x406952
test esi, esi
je 0x40698e
push 0x489ef4
mov edx, 0x405190
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x40699e
inc esi
cmp esi, edx
jb 0x406950
push 0
push str.Error
push str.Packet_Alarm_Parse__NULL___
push 0
call ebx
cmp byte [0x489ec2], 0
je 0x406a0b
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffffcc
add edx, esi
cmp esi, edx
jae 0x4069fb
nop dword [eax]
xor ecx, ecx
cmp byte [ecx + str.xxxx_x____xx____xxx____x____xxxx_xxxxx_xx____xxxx_xx], 0x78
jne 0x4069d6
mov al, byte [ecx + 0x43de3c]
cmp al, byte [ecx + esi]
jne 0x4069f6
inc ecx
cmp ecx, 0x34
jl 0x4069c2
test esi, esi
je 0x4069fb
push 0x489f38
mov edx, 0x4051c0
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x406a0b
inc esi
cmp esi, edx
jb 0x4069c0
push 0
push str.Error
push str.Packet_Item_Parse__NULL___
push 0
call ebx
cmp byte [0x489f16], 0
je 0x406a7b
mov edx, dword [0x489ef8]
mov esi, dword [0x489fc8]
add edx, 0xffffff8a
add edx, esi
cmp esi, edx
jae 0x406a6b
nop dword [eax]
xor ecx, ecx
cmp byte [ecx + str.xxxxxx____xx____xxx____x____xxxxxxxxxxxxxx____xxxxx____xxxxx________xx________xx____xxxx____xx_____xxx____x____xxx____], 0x78
jne 0x406a46
mov al, byte [ecx + 0x43df10]
cmp al, byte [ecx + esi]
jne 0x406a66
inc ecx
cmp ecx, 0x76
jl 0x406a32
test esi, esi
je 0x406a6b
push 0x489ea4
mov edx, 0x4051f0
mov ecx, esi
call fcn.0040a820
add esp, 4
jmp 0x406a7b
inc esi
cmp esi, edx
jb 0x406a30
push 0
push str.Error
push str.Packet_Crypt_Parse__NULL___
push 0
call ebx
cmp byte [0x489ef3], 0
je 0x406ae0
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.SocketManager___Initial_ReadPacket___failed.__return___d__n
lea edx, [edx + ecx]
call fcn.0040ab60
sub eax, 0x10
add esp, 8
cmp eax, 0xfffffff0
jne 0x406abc
push 0
push str.Error
push str.dwCallAddr__0___
push 0
call ebx
jmp 0x406ae0
test eax, eax
je 0x406ae0
mov ecx, dword [eax + 1]
test ecx, ecx
je 0x406ae0
add ecx, 5
add ecx, eax
je 0x406ae0
push 0x489ecc
mov edx, 0x4057f0
call fcn.0040a820
add esp, 4
mov eax, dword [0x489ef8]
mov edi, 1
mov esi, dword [0x489fc8]
add eax, 0xffffffee
add eax, esi
cmp esi, eax
jae 0x406b84
mov edx, esi
sub edx, str.cstrike_online.exe
nop word [eax + eax]
xor ecx, ecx
nop dword [eax]
nop word [eax + eax]
mov al, byte [ecx + str.cstrike_online.exe]
cmp al, byte [ecx + edx + str.cstrike_online.exe]
jne 0x406b3a
inc ecx
cmp ecx, 0x12
jb 0x406b20
sub edi, 1
je 0x406b50
mov eax, dword [0x489ef8]
inc esi
add eax, 0xffffffee
inc edx
add eax, dword [0x489fc8]
cmp esi, eax
jb 0x406b10
jmp 0x406b84
test esi, esi
je 0x406b84
mov edi, dword [sym.imp.KERNEL32.dll_VirtualProtect]
push 0x48a0e4
push 0x40
push 0x10
push esi
call edi
test eax, eax
je 0x406b84
movups xmm0, xmmword [0x43e00c]
push 0x48a0e4
movups xmmword [esi], xmm0
push dword [0x48a0e4]
push 0x10
push esi
call edi
cmp byte [0x489f3c], 0
jne 0x406c5b
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.CRYPT_ERROR
lea edx, [edx + ecx]
call fcn.0040ab60
add esp, 8
test eax, eax
je 0x406bda
sub eax, 0x117
je 0x406bda
mov ecx, dword [eax + 1]
test ecx, ecx
je 0x406bda
add ecx, 5
add ecx, eax
je 0x406bda
push 0x489ed4
mov edx, 0x405790
call fcn.0040a820
add esp, 4
cmp byte [0x489f3d], 0
jne 0x406c5b
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 1
push str.new_socket____
lea edx, [edx + ecx]
call fcn.0040ab60
add esp, 8
test eax, eax
je 0x406c5b
add eax, 0x62
je 0x406c2a
mov ecx, dword [eax + 1]
test ecx, ecx
je 0x406c2a
add ecx, 5
add ecx, eax
je 0x406c2a
push 0x489fd4
mov edx, 0x4057b0
call fcn.0040a820
add esp, 4
mov ecx, dword [0x489fc8]
mov edx, dword [0x489ef8]
push 2
push str.SSL:_Failed_to_load_Clients_Private_Key
lea edx, [edx + ecx]
call fcn.0040ab60
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x406c5b
mov eax, dword [ecx - 0x1e]
add eax, 0xffffffe6
add eax, ecx
mov dword [0x489f0c], eax
push 0
push 0
push 0
push 0x405a10
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret