Function at 0x45fbb0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x4b6408
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push esi
push edi
mov edi, ecx
mov dword [esp + 0xc], edi
call fcn.00465a30
mov esi, dword [esp + 0x30]
test eax, eax
je 0x45fbf7
test esi, esi
mov eax, esi
jne 0x45fbe9
mov eax, str.no_addr
push eax
push str.INFO_RECV:__s
call fcn.00465a40
add esp, 8
mov ebx, dword [esp + 0x2c]
cmp dword [ebx + 0x108], 0xa7472d3c
jne 0x460077
test esi, esi
je 0x45fc22
mov ecx, edi
call fcn.0045f620
cmp dword [ebx + 0xa4], eax
je 0x460077
mov eax, dword [edi + 0x12c]
push ebp
add eax, 0x2064
push 0
push eax
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CSingleLock::CSingleLock
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
mov dword [esp + 0x2c], 0
call sub.MFC42.DLL_CSingleLock::Lock
mov esi, dword [ebx + 0xa4]
mov ecx, dword [edi + 0x12c]
mov eax, esi
mov edx, esi
shr eax, 0x10
and edx, 0x1ff
and eax, 0x1ff
xor eax, edx
xor edi, edi
or eax, edx
mov edx, eax
and edx, 0x1ff
cmp dword [ecx + edx*4 + 0x1864], 0xffffffff
je 0x45fcbf
mov edx, eax
cmp edi, 0x200
jge 0x45fcbf
mov ebp, edx
and ebp, 0x1ff
mov ebp, dword [ecx + ebp*4 + 0x1864]
mov ebp, dword [ecx + ebp*4 + 0x206c]
cmp dword [ebp + 0xa4], esi
je 0x45fcf6
inc edi
inc edx
mov ebp, edx
and ebp, 0x1ff
cmp dword [ecx + ebp*4 + 0x1864], 0xffffffff
jne 0x45fc85
xor ebp, ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x184]
inc ecx
test ebp, ebp
mov dword [eax + 0x184], ecx
je 0x45fd0e
cmp dword [ebx + 0x108], 0xa7472d3c
jne 0x45fe9b
mov ecx, 0x43
mov esi, ebx
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
jmp 0x45fe9b
add edi, eax
and edi, 0x1ff
mov eax, dword [ecx + edi*4 + 0x1864]
mov ebp, dword [ecx + eax*4 + 0x206c]
jmp 0x45fcc1
push 0x124
call sub.MFC42.DLL_operatornew
mov edx, eax
add esp, 4
test edx, edx
je 0x45fdb9
mov ecx, 0x43
xor eax, eax
mov edi, edx
lea ebp, [edx + 8]
rep stosd dword es:[edi], eax
mov edi, 0x4d1de8
or ecx, 0xffffffff
mov dword [edx + 0x108], 0xa7472d3c
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
mov ebp, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
xor eax, eax
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x43
mov edi, edx
mov byte [edx + 0x10e], 0
mov byte [edx + 0x11c], 0
mov dword [edx + 0x114], eax
mov byte [edx + 0x10d], al
mov dword [edx + 0x118], eax
mov byte [edx + 0x10c], al
mov byte [edx + 0x10f], al
mov byte [edx + 0x110], al
mov byte [edx + 0x111], al
mov esi, ebx
rep stosd dword es:[edi], eax
mov ecx, 0x43
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov dword [edx + 0x120], 0x7654f213
jmp 0x45fdbb
xor ebp, ebp
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 0xa4]
push edi
mov esi, dword [ecx + 0x12c]
mov ecx, esi
call fcn.00460090
test eax, eax
jne 0x45ff44
cmp dword [esi + 0x3070], 0x200
jge 0x45ff44
mov eax, edi
or ecx, 0xffffffff
shr edi, 0x10
and eax, 0x1ff
and edi, 0x1ff
xor edi, eax
or edi, eax
xor eax, eax
mov edx, edi
and edx, 0x1ff
cmp dword [esi + edx*4 + 0x1864], ecx
je 0x45fe2f
cmp eax, 0x200
jge 0x45fe2f
inc eax
lea edx, [eax + edi]
and edx, 0x1ff
cmp dword [esi + edx*4 + 0x1864], ecx
jne 0x45fe15
add eax, edi
and eax, 0x1ff
lea edi, [esi + eax*4 + 0x1864]
mov eax, dword [esi + eax*4 + 0x1864]
cmp eax, ecx
je 0x45fe5c
push 0
push str.DB_PROBLEM
push str.FEJL
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [esi + 0x3070]
mov dword [edi], eax
mov dword [esi + eax*4 + 0x206c], ebp
mov eax, dword [esi + 0x3070]
mov dword [esi + eax*4 + 0x286c], ebp
mov eax, dword [esi + 0x3070]
inc eax
mov byte [esi + 0x185c], 1
test ebp, ebp
mov dword [esi + 0x3070], eax
je 0x460065
mov byte [ebp + 0x10c], 1
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x45ff5f
mov al, byte [ebp + 0x10e]
test al, al
jne 0x45ff5f
mov byte [ebp + 0x10e], cl
mov cl, byte [ebp + 0x10c]
mov byte [ebp + 0x110], 1
mov byte [ebp + 0x10d], cl
xor edi, edi
mov esi, dword [esp + 0x10]
xor eax, eax
test eax, eax
mov ecx, dword [esi + 0x12c]
jl 0x45ffa6
cmp edi, dword [ecx + 0x3070]
jge 0x45ffa6
lea edx, [edi*4]
mov eax, dword [edx + ecx + 0x286c]
test eax, eax
je 0x45ffa6
mov bl, byte [eax + 0x110]
test bl, bl
je 0x45ff59
cmp eax, ebp
je 0x45ff59
mov ebx, edi
dec edi
test ebx, ebx
jl 0x45ff59
cmp ebx, dword [ecx + 0x3070]
jge 0x45ff59
mov esi, dword [edx + ecx + 0x286c]
xor eax, eax
lea edx, [ecx + 0x206c]
cmp dword [edx], esi
je 0x45ff52
inc eax
add edx, 4
cmp eax, 0x200
jl 0x45ff32
inc edi
jmp 0x45fed0
push ebp
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x460065
push ebx
push eax
call fcn.004202c0
inc edi
jmp 0x45fed0
mov al, byte [ebp + 0x110]
test al, al
jne 0x45ffa0
mov al, byte [ebp + 0x10e]
test al, al
jne 0x45ffa0
mov al, byte [ebp + 0x10c]
test al, al
je 0x45ff98
mov eax, dword [ebp + 0xd4]
test eax, eax
je 0x45ff98
mov esi, dword [esp + 0x10]
mov eax, 1
mov byte [ebp + 0x10d], al
jmp 0x45ffaa
xor eax, eax
mov byte [ebp + 0x10d], al
mov esi, dword [esp + 0x10]
jmp 0x45ffaa
mov ecx, dword [esp + 0x34]
mov dl, byte [esp + 0x38]
mov byte [ebp + 0x11c], 1
test ecx, ecx
mov byte [ebp + 0x10f], dl
je 0x45ffcb
mov al, byte [ebp + 0x110]
test al, al
mov eax, ecx
je 0x45ffd0
mov eax, str.Local
push 0x20
push eax
lea eax, [ebp + 0xa8]
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
mov byte [ebp + 0xc7], 0
mov al, byte [esi + 0x19c]
add esp, 0xc
test al, al
je 0x460065
mov ecx, dword [ebp + 0xa4]
mov eax, dword [esi + 0xc4]
cmp ecx, eax
jne 0x460065
lea eax, [esi + 0xf8]
lea edx, [ebp + 0xd8]
mov ecx, 4
mov edi, eax
mov esi, edx
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x460065
mov esi, dword [esp + 0x10]
mov eax, dword [eax]
mov edi, dword [ebp + 0xe4]
mov edx, dword [edx]
mov ebx, dword [esi + 0x104]
mov dword [esp + 0x38], eax
mov al, byte [ebp + 0xe4]
mov cl, bl
and al, 1
and cl, 1
test al, al
je 0x46004e
test cl, cl
jne 0x460052
jmp 0x46005e
test cl, cl
jne 0x460065
cmp edi, ebx
jb 0x46005e
jne 0x460065
cmp dword [esp + 0x38], edx
jb 0x460065
mov byte [esi + 0x230], 1
lea ecx, [esp + 0x14]
mov dword [esp + 0x28], 0xffffffff
call sub.MFC42.DLL_CSingleLock::Unlock
pop ebp
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1c
ret 0xc