Function at 0x423770
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x43a611
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x1ab4c
call fcn.00431400
mov eax, dword [0x44fba0]
push ebx
mov ebx, dword [ebp + 8]
push esi
xor eax, ebp
test ebx, ebx
mov esi, ecx
mov dword [esp + 0x1ab50], eax
push edi
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], ebx
je 0x4237f9
mov al, byte [ebx + 0x3d0]
test al, al
je 0x4237f9
mov ecx, dword [ebx + 8]
mov edx, dword [esi + 0xc20]
mov eax, ecx
sub eax, edx
cmp eax, 0x14
jle 0x4237f5
push 0x4415e8
mov ecx, esi
call fcn.0041a220
mov eax, dword [esi + 0x20]
push 0
push 0
push 0x10
push eax
call dword [0x43cbbc]
jmp 0x423c6e
cmp edx, ecx
jb 0x423805
mov ecx, esi
call fcn.00423420
jmp 0x423c6e
mov byte [esp + 0x1aa48], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x1aa49]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x1aa48]
push ecx
stosb byte es:[edi], al
call fcn.004084d0
xor eax, eax
xor edx, edx
mov ecx, 0x6978
lea edi, [esp + 0x48]
mov dword [esp + 0x44], edx
rep stosd dword es:[edi], eax
mov byte [esp + 0x1a62c], al
mov ecx, 0x40
lea edi, [esp + 0x1a62d]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [esi + 0xc20]
mov eax, dword [ebx + 8]
add esp, 4
cmp edi, eax
mov dword [esp + 0x10], edx
jae 0x423909
lea edx, [esp + 0x44]
mov dword [esp + 0x14], edx
lea ebx, [edi + 1]
push ebx
push edi
push str.patch__d__d.exe
lea eax, [esp + 0x1a634]
push 0x104
push eax
call dword [sym.imp.MSVCR71.dll__snprintf]
mov ecx, dword [esp + 0x24]
mov esi, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x24], ecx
push 0x104
lea ecx, [esp + 0x1a640]
mov eax, esi
push ecx
lea edx, [esi + 4]
add eax, 0x870
mov dword [esi], edi
mov edi, dword [sym.imp.MSVCR71.dll_strncpy]
push edx
mov dword [esp + 0x34], eax
call edi
push 0x104
lea eax, [esp + 0x1a64c]
push eax
lea ecx, [esi + 0x108]
push ecx
call edi
mov edx, dword [esp + 0x38]
mov eax, 1
mov dword [esi + 0x230], eax
mov dword [esi + 0x234], eax
mov eax, dword [edx + 8]
mov edi, ebx
add esp, 0x2c
cmp edi, eax
jb 0x423878
mov esi, dword [esp + 0x30]
mov ebx, edx
xor eax, eax
mov byte [esp + 0x1a838], 0
mov ecx, 0x40
lea edi, [esp + 0x1a839]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
stosb byte es:[edi], al
lea eax, [esp + 0x1a83c]
push str.PeerSvrInfo.ini
push eax
call dword [sym.imp.MSVCR71.dll__fullpath]
add esp, 0xc
lea ecx, [esp + 0x24]
call fcn.00415f90
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x1a83c]
push edx
mov dword [esp + 0x1ab6c], eax
call fcn.0042a640
xor eax, eax
mov byte [esp + 0x1a738], 0
mov ecx, 0x40
lea edi, [esp + 0x1a739]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
stosb byte es:[edi], al
lea eax, [esp + 0x1a73c]
push str.StunSvrInfo.ini
push eax
call dword [sym.imp.MSVCR71.dll__fullpath]
add esp, 0x14
lea ecx, [esp + 0x18]
call fcn.00415f90
xor edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edi
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x1a734]
push edx
mov byte [esp + 0x1ab6c], 1
call fcn.0042a640
mov eax, dword [esp + 0x18]
add esp, 8
cmp eax, edi
mov dword [esp + 0x40], eax
jle 0x423b22
lea esi, [esp + 0x280]
mov dword [esp + 0xc], eax
lea esp, [esp]
mov edi, dword [sym.imp.MSVCR71.dll_strncpy]
xor ecx, ecx
lea edx, [esi - 0x30]
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov dword [edx + 0x18], ecx
push 0x104
mov dword [edx + 0x1c], ecx
push str.qqkart_autopatch
mov byte [edx + 0x20], cl
push esi
mov dword [esi - 4], 1
call edi
lea eax, [ebx + 0xd]
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x423a32
sub eax, edx
mov dword [esp + 0x14], eax
je 0x423a50
push 0x104
lea eax, [ebx + 0xd]
push eax
push esi
call edi
add esp, 0xc
mov al, byte [ebx + 0x10e]
test al, al
mov dword [esi + 0x104], 0
jbe 0x423b07
call dword [sym.imp.MSVCR71.dll_rand]
movzx ecx, byte [ebx + 0x10e]
cdq
idiv ecx
push 0x104
lea eax, [esi + 0x108]
imul edx, edx, 0x46
lea edi, [edx + ebx]
lea edx, [edi + 0x112]
push edx
push eax
call dword [sym.imp.MSVCR71.dll_strncpy]
mov cx, word [edi + 0x152]
mov eax, dword [esp + 0x38]
add esp, 0xc
test eax, eax
mov word [esi + 0x20c], cx
mov dword [esi + 0x624], 0x3e8
mov dword [esi + 0x628], 0x32
mov dword [esi + 0x62c], 0x1388
je 0x423aeb
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov word [esi + 0x418], 0x50
mov ax, word [eax + 0xdc]
mov word [esi + 0x312], ax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x423b07
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dx, word [eax + 0xd0]
mov word [esi + 0x51e], dx
mov eax, dword [esp + 0xc]
add esi, 0x870
dec eax
mov dword [esp + 0xc], eax
jne 0x4239f0
mov esi, dword [esp + 0x30]
xor edi, edi
lea ecx, [esp + 0x34]
call fcn.0041ec50
cmp dword [esp + 0x38], edi
mov byte [esp + 0x1ab64], 2
je 0x423bbc
cmp dword [esp + 0x40], edi
jle 0x423bbc
xor eax, eax
mov byte [esp + 0x1a940], 0
mov ecx, 0x40
lea edi, [esp + 0x1a941]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi + 0xbe0]
push eax
lea eax, [esp + 0x1a944]
push 0x104
push eax
call dword [sym.imp.MSVCR71.dll__snprintf]
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
add esp, 0xc
lea eax, [esp + 0x1a940]
push eax
call dword [edx + 0x1c]
mov eax, dword [esi + 0xbd8]
push eax
call dword [sym.imp.MSVCR71.dll_atoi]
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
add esp, 4
push eax
call dword [edx + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx]
push 0
push 1
lea edx, [esp + 0x48]
push edx
call dword [eax + 0x14]
xor edi, edi
jmp 0x423bc8
push 0x441564
mov ecx, esi
call fcn.0041a220
mov eax, dword [esi + 0x20]
push edi
push edi
push 0x10
push eax
call dword [0x43cbbc]
mov ecx, dword [esp + 0x38]
cmp ecx, edi
mov byte [esp + 0x1ab64], 1
mov dword [esp + 0x34], 0x44034c
je 0x423bf8
mov edx, dword [ecx]
push edi
call dword [edx + 8]
mov dword [esp + 0x38], edi
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
mov dword [esp + 0x20], edi
je 0x423c28
mov esi, dword [eax]
push eax
call sub.MFC71.DLL_operator_delete_1
mov ecx, dword [esp + 0x20]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x423c13
push ecx
call sub.MFC71.DLL_operator_delete_1
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ecx + 4], ecx
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp eax, ecx
mov dword [esp + 0x2c], edi
je 0x423c65
mov esi, dword [eax]
push eax
call sub.MFC71.DLL_operator_delete_1
mov ecx, dword [esp + 0x2c]
add esp, 4
cmp esi, ecx
mov eax, esi
jne 0x423c50
push ecx
call sub.MFC71.DLL_operator_delete_1
add esp, 4
mov ecx, dword [esp + 0x1ab5c]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x1ab54]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043146e
mov esp, ebp
pop ebp
ret 4