Function at 0x4edce0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4ee010
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp dword [ebp - 8], 0
je 0x4edffa
mov byte [ebp - 0x15], 0
xor ebx, ebx
mov eax, dword [0x533cb8]
mov eax, dword [eax]
mov ax, word [eax + 0x44]
mov word [ebp - 0x14], ax
mov eax, dword [0x533cb8]
mov eax, dword [eax]
mov dx, 0xfff5
call fcn.004803a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
call fcn.00446680
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x339]
mov byte [ebp - 0x11], al
cmp byte [ebp - 9], 1
sete al
xor al, 1
mov edx, dword [ebp - 4]
mov byte [edx + 0x339], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
call fcn.0044654c
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4edf5a
mov ebx, dword [ebp - 0x10]
mov byte [ebp - 0x15], 1
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 8]
push eax
push 0
mov eax, dword [0x533bb0]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
test eax, eax
je 0x4edf5a
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 8]
call fcn.004e5444
mov dword [ebp - 0x24], eax
mov eax, ebx
call fcn.00445d10
mov edx, eax
add edx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.004e5460
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 8]
call fcn.004e5444
mov dword [ebp - 0x20], eax
jmp 0x4edeca
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x1c]
call fcn.004e5668
mov eax, dword [ebp - 0x28]
call fcn.00405398
push eax
call sub.kernel32.dll_OutputDebugStringA
cmp byte [ebp - 9], 0
jne 0x4ede0e
mov dl, 1
mov eax, ebx
call fcn.004455a0
xor edx, edx
mov eax, ebx
call fcn.004453c0
jmp 0x4ede34
mov eax, ebx
call fcn.004453d8
test al, al
jne 0x4ede34
mov eax, ebx
call fcn.00445538
test al, al
je 0x4ede34
mov eax, ebx
call fcn.00445e84
mov dl, 1
mov eax, ebx
call fcn.004455a0
mov byte [ebp - 0x15], 0
mov eax, ebx
call fcn.00445980
mov edi, eax
dec edi
test edi, edi
jl 0x4edeb5
inc edi
xor esi, esi
mov edx, esi
mov eax, ebx
call fcn.004458a4
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 0x1c]
push eax
push 0
mov edx, esi
mov eax, ebx
call fcn.004458a4
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x1c]
test eax, eax
jne 0x4edeb1
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [0x533c5c]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov edx, esi
mov eax, ebx
call fcn.004458a4
mov ebx, eax
mov eax, ebx
call fcn.00445d10
mov edx, eax
add edx, dword [ebp - 0x24]
mov eax, dword [ebp - 8]
call fcn.004e5460
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x15], 1
jmp 0x4edeb5
inc esi
dec edi
jne 0x4ede49
cmp byte [ebp - 0x15], 0
jne 0x4edeca
mov al, byte [ebp - 9]
add al, 0xfe
sub al, 2
jae 0x4ededa
mov byte [ebp - 9], 1
jmp 0x4ededa
mov eax, ebx
call fcn.00445d10
cmp eax, dword [ebp - 0x20]
jl 0x4edddb
cmp byte [ebp - 0x15], 0
jne 0x4edf5a
mov eax, dword [ebp - 8]
call fcn.004e5704
test al, al
je 0x4edf34
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov edx, dword [ebp - 8]
call fcn.004e6c18
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
call fcn.004e6e1c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x33c]
mov edx, dword [ebp - 0x1c]
call fcn.004e6b70
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004eca58
mov ebx, eax
mov byte [ebp - 0x15], 1
jmp 0x4edf5a
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [0x533c5c]
mov eax, dword [eax]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
mov eax, dword [ebp - 0x10]
call fcn.00445614
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4edd7d
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x11]
mov byte [eax + 0x339], dl
test ebx, ebx
je 0x4edfd9
mov al, byte [ebp - 9]
sub al, 1
jb 0x4edfbf
je 0x4edf7d
dec al
je 0x4edf96
dec al
je 0x4edfb6
jmp 0x4edfd9
mov eax, ebx
call fcn.004453d8
test al, al
je 0x4edfd9
xor ecx, ecx
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004ee9d8
jmp 0x4edfd9
mov eax, ebx
call fcn.004455d8
test eax, eax
je 0x4edfd9
mov eax, ebx
call fcn.004455d8
mov edx, eax
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.004ee9d8
jmp 0x4edfd9
mov eax, ebx
call fcn.00445e78
jmp 0x4edfd9
mov eax, dword [ebp - 4]
mov byte [eax + 0x35c], 1
mov dl, 1
mov eax, ebx
call fcn.00445414
mov eax, ebx
call fcn.00445ce8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
call fcn.004466cc
mov eax, dword [0x533cb8]
mov eax, dword [eax]
mov dx, word [ebp - 0x14]
call fcn.004803a4
mov bl, byte [ebp - 0x15]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ee017
lea eax, [ebp - 0x28]
call fcn.00404ebc
ret