Function at 0x4b9968
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0xf2
push 0
push 0
dec ecx
jne 0x4b9971
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x41f]
push ecx
mov ecx, pe_nt_image_headers32
rep movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00404c30
lea esi, [ebp - 0x70c]
xor eax, eax
push ebp
push 0x4ba0ec
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4ba104
push dword [ebp - 8]
push 0x4ba12c
lea edx, [ebp - 0x74c]
mov eax, dword [ebp + 8]
call fcn.00409290
push dword [ebp - 0x74c]
lea eax, [ebp - 0x748]
mov edx, 4
call fcn.00404b00
mov eax, dword [ebp - 0x748]
call fcn.00404c40
push eax
call sub.kernel32.dll_OutputDebugStringA
xor edx, edx
push ebp
push 0x4ba03e
push dword fs:[edx]
mov dword fs:[edx], esp
cmp byte [ebp - 0x41f], 0x81
jne 0x4b9ad3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3b4]
mov edx, dword [eax]
call dword [edx + 0xc8]
cmp al, 1
jne 0x4b9ad3
lea edx, [ebp - 0x41f]
lea eax, [ebp - 0x741]
mov ecx, 0x35
call fcn.0040792c
xor ebx, ebx
lea esi, [ebp - 0x731]
push dword [ebp - 0x10]
push 0x4ba140
lea ecx, [ebp - 0x750]
xor eax, eax
mov al, byte [esi]
mov edx, 2
call fcn.004093a4
push dword [ebp - 0x750]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404b00
inc ebx
inc esi
cmp bl, 6
jne 0x4b9a46
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, 1
call fcn.00404ce0
push 0x4ba14c
push dword [ebp - 0x10]
push 0x4ba17c
push dword [ebp - 8]
lea eax, [ebp - 0x754]
mov edx, 4
call fcn.00404b00
mov eax, dword [ebp - 0x754]
call fcn.004b4ee0
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 8]
lea edx, [ebp - 0x741]
mov eax, dword [ebp - 4]
call fcn.004b8200
jmp 0x4ba034
mov al, byte [ebp - 0x41f]
cmp al, 1
je 0x4b9aee
cmp al, 2
je 0x4b9aee
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ba07e
lea edx, [ebp - 0x41f]
lea eax, [ebp - 0x60d]
mov ecx, 0x1ee
call fcn.0040792c
xor ebx, ebx
lea edi, [ebp - 0x5f1]
push dword [ebp - 0x10]
push 0x4ba140
lea ecx, [ebp - 0x758]
xor eax, eax
mov al, byte [edi]
mov edx, 2
call fcn.004093a4
push dword [ebp - 0x758]
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404b00
inc ebx
inc edi
cmp bl, 6
jne 0x4b9b0c
lea eax, [ebp - 0x10]
mov ecx, 1
mov edx, 1
call fcn.00404ce0
cmp dword [0x4c9e9c], 0
je 0x4b9b8c
mov eax, dword [ebp - 0x10]
call fcn.004b5888
test al, al
jne 0x4b9b8c
lea eax, [ebp - 0x75c]
mov ecx, dword [ebp - 0x10]
mov edx, 0x4ba18c
call fcn.00404a8c
mov eax, dword [ebp - 0x75c]
call fcn.004b4dc4
jmp 0x4ba034
lea edx, [ebp - 0x51d]
mov eax, esi
mov ecx, 0xfe
call fcn.0040792c
xor ebx, ebx
mov byte [ebp - 0x1d], 0
jmp 0x4b9d1e
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0xff
je 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9bdc
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 1
jne 0x4b9bdc
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9c01
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 2
jne 0x4b9c01
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9c26
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 3
jne 0x4b9c26
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9c4b
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 4
jne 0x4b9c4b
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9c70
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 5
jne 0x4b9c70
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9c95
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 6
jne 0x4b9c95
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9cb7
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 7
jne 0x4b9cb7
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9cd9
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 8
jne 0x4b9cd9
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
cmp byte [esi + eax], 0x35
jne 0x4b9cfb
xor eax, eax
mov al, bl
cmp byte [esi + eax + 2], 9
jne 0x4b9cfb
xor eax, eax
mov al, bl
mov al, byte [esi + eax + 2]
mov byte [ebp - 0x1d], al
jmp 0x4b9d2d
xor eax, eax
mov al, bl
mov edx, eax
movzx eax, byte [esi + eax + 1]
add edx, eax
add edx, 2
cmp edx, 0xff
jae 0x4b9d2d
xor eax, eax
mov al, bl
add bl, byte [esi + eax + 1]
add bl, 2
xor eax, eax
mov al, bl
cmp eax, 0xff
jb 0x4b9ba9
lea edx, [ebp - 0x764]
xor ebx, ebx
mov bl, byte [ebp - 0x1d]
mov eax, ebx
call fcn.00409290
mov ecx, dword [ebp - 0x764]
lea eax, [ebp - 0x760]
mov edx, 0x4ba1a4
call fcn.00404a8c
mov eax, dword [ebp - 0x760]
call fcn.00404c40
push eax
call sub.kernel32.dll_OutputDebugStringA
mov al, byte [ebp - 0x1d]
dec al
je 0x4b9d76
sub al, 2
je 0x4b9dcd
jmp 0x4b9ff9
push 0x4ba1c8
push dword [ebp - 0x10]
push 0x4ba17c
push dword [ebp - 8]
push 0x4ba1f0
mov eax, dword [ebp - 0x609]
push eax
call sub.wsock32.dll_ntohl
lea ecx, [ebp - 0x76c]
mov edx, 4
call fcn.004093a4
push dword [ebp - 0x76c]
lea eax, [ebp - 0x768]
mov edx, 6
call fcn.00404b00
mov eax, dword [ebp - 0x768]
call fcn.004b4ee0
jmp 0x4ba034
push 0x4ba200
push dword [ebp - 0x10]
push 0x4ba17c
push dword [ebp - 8]
push 0x4ba1f0
mov eax, dword [ebp - 0x609]
push eax
call sub.wsock32.dll_ntohl
lea ecx, [ebp - 0x774]
mov edx, 4
call fcn.004093a4
push dword [ebp - 0x774]
lea eax, [ebp - 0x770]
mov edx, 6
call fcn.00404b00
mov eax, dword [ebp - 0x770]
call fcn.004b4ee0
lea edx, [ebp - 0x778]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f0]
call fcn.00445ab8
mov eax, dword [ebp - 0x778]
call fcn.0046a154
mov edi, eax
lea edx, [ebp - 0x77c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x324]
call fcn.00445ab8
mov eax, dword [ebp - 0x77c]
call fcn.004093cc
test al, al
jbe 0x4b9e9f
mov byte [ebp - 0x1f], al
mov bl, 1
lea edx, [ebp - 0x780]
mov eax, edi
call fcn.0046a1a8
mov eax, dword [ebp - 0x780]
xor ecx, ecx
mov edx, 0x1f4
call fcn.0046a4b4
mov byte [ebp - 0x1e], al
cmp byte [ebp - 0x1e], 0
je 0x4b9e9f
mov eax, edi
call fcn.00469b24
mov edi, eax
inc ebx
dec byte [ebp - 0x1f]
jne 0x4b9e68
cmp byte [ebp - 0x1e], 1
jne 0x4b9eb4
mov eax, 0x4ba228
call fcn.004b4ee0
jmp 0x4ba034
mov eax, dword [ebp - 8]
mov edx, 0x4ba250
call fcn.00404b8c
je 0x4b9ed0
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.00404818
jmp 0x4b9eda
lea edx, [ebp - 0x14]
mov eax, edi
call fcn.0046a1a8
mov eax, 0x4ba258
mov dword [ebp - 0x1c], eax
mov byte [ebp - 9], 0
mov edi, esi
mov edx, dword [ebp - 0x1c]
mov eax, edi
mov ecx, 9
call fcn.00408d18
test al, al
je 0x4b9f84
cmp byte [edi - 2], 0x3c
jne 0x4b9f92
mov bl, byte [edi - 1]
cmp bl, 0x20
jbe 0x4b9f13
mov bl, 0x20
xor eax, eax
mov al, bl
call fcn.004027e8
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x4b9f7d
push dword fs:[eax]
mov dword fs:[eax], esp
xor ecx, ecx
mov cl, bl
mov edx, edi
mov eax, dword [ebp - 0x1c]
call fcn.0040792c
cmp bl, 0x15
jb 0x4b9f67
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x784]
mov eax, dword [ebp - 0x1c]
call fcn.0040a134
mov eax, dword [ebp - 0x784]
mov ecx, 5
mov edx, 0x10
call fcn.00404ca0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b9f92
mov eax, dword [ebp - 0x1c]
call fcn.00402808
ret
inc byte [ebp - 9]
inc edi
cmp byte [ebp - 9], 0xf6
jne 0x4b9ee8
mov eax, dword [0x4c9e4c]
mov edx, 0x4ba26c
call fcn.00404b8c
jne 0x4b9fc1
lea eax, [ebp - 0x788]
mov ecx, dword [ebp - 0x18]
mov edx, 0x4ba278
call fcn.00404a8c
mov eax, dword [ebp - 0x788]
call fcn.004b4ee0
lea edx, [ebp - 0x78c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x40c]
call fcn.00445ab8
mov eax, dword [ebp - 0x78c]
push eax
push 1
mov eax, dword [ebp + 8]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x14]
lea edx, [ebp - 0x60d]
mov eax, dword [ebp - 4]
call fcn.004b7534
jmp 0x4ba034
push 0x4ba28c
push dword [ebp - 0x10]
push 0x4ba2c0
lea edx, [ebp - 0x794]
mov eax, ebx
call fcn.00409290
push dword [ebp - 0x794]
lea eax, [ebp - 0x790]
mov edx, 4
call fcn.00404b00
mov eax, dword [ebp - 0x790]
call fcn.004b4ee0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4ba074
push 0x4ba2e0
call sub.kernel32.dll_OutputDebugStringA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ba0f3
lea eax, [ebp - 0x798]
mov edx, 3
call fcn.004047a4
lea eax, [ebp - 0x78c]
call fcn.00404780
lea eax, [ebp - 0x788]
mov edx, 3
call fcn.004047a4
lea eax, [ebp - 0x77c]
mov edx, 2
call fcn.004047a4
lea eax, [ebp - 0x774]
mov edx, 0xc
call fcn.004047a4
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.004047a4
lea eax, [ebp - 8]
call fcn.00404780
ret