Function at 0x4ec8a0
Capabilities:
Print debug messages

Disassembly:
sub esp, 0x120
mov ecx, dword [0xe823c8]
push ebx
push ebp
mov ebp, dword [esp + 0x130]
xor eax, eax
push esi
cmp ebp, eax
push edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], eax
je 0x4ec8d5
mov edi, dword [ebp + 4]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x1c], edi
jmp 0x4ec8e5
mov edi, dword [0xe66384]
mov ebx, dword [0xe66380]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], eax
mov eax, edi
cdq
and edx, 0x3f
mov dword [esp + 0x14], ebx
add eax, edx
mov dword [esp + 0x10], ebx
mov esi, eax
sar esi, 6
and edi, 0x8000003f
jns 0x4ec90b
dec edi
or edi, 0xffffffc0
inc edi
je 0x4ec90e
inc esi
mov eax, 0x2aaaaaab
imul ebx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ebx
mov edi, edx
mov ebx, 0x30
cdq
idiv ebx
test edx, edx
je 0x4ec930
inc edi
imul edi, esi
test ebp, ebp
mov dword [esp + 0x24], edi
je 0x4ec956
mov eax, dword [ebp + 4]
test al, 3
je 0x4ec96d
mov ecx, eax
neg ecx
and ecx, 3
add ecx, eax
mov dword [ebp + 4], ecx
mov ecx, dword [0xe823c8]
jmp 0x4ec96d
mov eax, dword [0xe66384]
test al, 3
je 0x4ec96d
mov edx, eax
neg edx
and edx, 3
add eax, edx
mov dword [0xe66384], eax
mov ebx, dword [esp + 0x134]
mov eax, dword [0xe823e4]
shl ebx, 4
or ebp, 0xffffffff
mov eax, dword [ebx + eax]
test eax, eax
je 0x4ec9ab
mov edx, eax
test edx, edx
je 0x4ec996
mov dword [edx + 4], ebp
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4ec98c
mov ecx, dword [0xe823e4]
mov dword [ebx + ecx], 0
mov ecx, dword [0xe823c8]
jmp 0x4ec9af
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov edi, dword [0x54adb4]
lea eax, [ecx*8]
sub eax, ecx
add edi, 0xfffffffe
shl eax, 2
cmp dword [eax + 0xe663b8], edi
jae 0x4ecab9
mov eax, dword [eax + 0xe663b4]
cmp eax, ebp
je 0x4eca05
mov ecx, dword [0xe823e4]
shl eax, 4
add ecx, eax
mov eax, dword [ecx]
mov dword [ecx], 0
test eax, eax
je 0x4ec9ff
mov dword [eax + 4], ebp
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4ec9f5
mov ecx, dword [0xe823c8]
mov eax, dword [0xe823e4]
xor edi, edi
cmp dword [ebx + eax], edi
jne 0x4eca26
lea edx, [ecx*8]
sub edx, ecx
lea ecx, [edx*4 + 0xe663b0]
mov dword [ebx + eax], ecx
jmp 0x4eca39
lea eax, [ecx*8]
sub eax, ecx
lea ecx, [eax*4 + 0xe663b0]
mov dword [edx + 0x10], ecx
mov ecx, dword [0xe823c8]
mov edx, dword [esp + 0x134]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov word [eax + 0xe663c4], bp
mov word [eax + 0xe663c6], bp
mov word [eax + 0xe663c8], di
mov edi, dword [esp + 0x10]
mov dword [eax + 0xe663b4], edx
mov edx, dword [esp + 0x14]
sub edx, edi
mov edi, dword [esp + 0x24]
mov word [eax + 0xe663bc], si
mov word [eax + 0xe663be], dx
mov edx, dword [esp + 0x18]
inc edx
cmp edx, edi
mov dword [esp + 0x18], edx
jge 0x4ecadc
lea edx, [eax + 0xe663b0]
mov eax, dword [esp + 0x1c]
add eax, 0xffffffc0
cmp esi, eax
jl 0x4ecab6
mov eax, dword [esp + 0x10]
xor esi, esi
sub eax, 0x30
mov dword [esp + 0x10], eax
jmp 0x4ecab9
add esi, 0x40
mov eax, dword [0xe823cc]
inc ecx
cmp ecx, eax
mov dword [0xe823c8], ecx
jl 0x4ecad1
xor ecx, ecx
mov dword [0xe823c8], ecx
cmp ecx, dword [esp + 0x28]
je 0x4ecb0f
jmp 0x4ec9b3
lea edx, [ecx*8]
xor eax, eax
sub edx, ecx
inc ecx
mov dword [0xe823c8], ecx
mov dword [edx*4 + 0xe663c0], eax
mov edx, dword [0xe823cc]
cmp ecx, edx
jl 0x4ecb2d
pop edi
pop esi
pop ebp
mov dword [0xe823c8], eax
pop ebx
add esp, 0x120
ret
push ecx
lea eax, [esp + 0x34]
push 0x54c490
push eax
call fcn.0050543d
add esp, 0xc
lea ecx, [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret