Function at 0x4ad3b4
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc4
push ebx
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x28], ecx
mov ebx, eax
xor eax, eax
push ebp
push 0x4ad7a4
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebx + 4], 0
je 0x4ad409
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je 0x4ad409
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je 0x4ad409
mov eax, ebx
call fcn.004ad9bc
jmp 0x4ad789
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], 0
cmp dword [ebx + 0x34], 0
jne 0x4ad499
cmp dword [ebx + 0x30], 0
jne 0x4ad499
cmp byte [ebx + 0x40], 0
jbe 0x4ad499
mov eax, dword [ebx + 0xc]
call fcn.004ada24
push edx
push eax
mov eax, dword [ebx + 0xc]
fild qword [eax + 8]
fdiv dword [0x4ad7b0]
movzx eax, byte [ebx + 0x40]
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fmulp st(1)
call sub.rtl160.bpl__System__ROUND_qqrv
cmp edx, dword [esp + 4]
jne 0x4ad45f
cmp eax, dword [esp]
pop edx
pop eax
jae 0x4ad499
jmp 0x4ad463
pop edx
pop eax
jge 0x4ad499
mov eax, dword [ebx + 0xc]
fild qword [eax + 8]
fdiv dword [0x4ad7b0]
movzx eax, byte [ebx + 0x41]
mov dword [ebp - 0x24], eax
fild dword [ebp - 0x24]
fmulp st(1)
call sub.rtl160.bpl__System__ROUND_qqrv
mov ecx, dword [ebx + 0xc]
add eax, dword [ecx + 8]
adc edx, dword [ecx + 0xc]
jno 0x4ad490
call sub.rtl160.bpl__System__IntOver_qqrv
push edx
push eax
mov eax, ebx
call fcn.004ad940
cmp dword [ebx + 0x34], 0
jne 0x4ad4ab
cmp dword [ebx + 0x30], 0
jbe 0x4ad780
jmp 0x4ad4b1
jle 0x4ad780
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
cmp edx, 0
jne 0x4ad4c9
cmp eax, 0
jbe 0x4ad780
jmp 0x4ad4cf
jle 0x4ad780
mov eax, ebx
call fcn.004ad338
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
call dword [edx + 4]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
sub eax, dword [ebp - 0x20]
sbb edx, dword [ebp - 0x1c]
jno 0x4ad50b
call sub.rtl160.bpl__System__IntOver_qqrv
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
test edx, edx
jge 0x4ad52a
xor ecx, ecx
neg eax
xchg edx, ecx
sbb edx, ecx
jno 0x4ad52a
call sub.rtl160.bpl__System__IntOver_qqrv
cmp edx, 0
jne 0x4ad53a
cmp eax, 0x64
jbe 0x4ad780
jmp 0x4ad540
jle 0x4ad780
cmp dword [ebp - 4], 0
jne 0x4ad54e
cmp dword [ebp - 8], 0
jbe 0x4ad597
jmp 0x4ad550
jle 0x4ad597
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
cmp edx, dword [ebx + 0x1c]
jne 0x4ad564
cmp eax, dword [ebx + 0x18]
jbe 0x4ad597
jmp 0x4ad566
jle 0x4ad597
push 0x4ad7b4
call sub.kernel32.dll_OutputDebugStringW
movzx eax, byte [ebx + 8]
mov byte [ebx + 9], al
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
jno 0x4ad58c
call sub.rtl160.bpl__System__IntOver_qqrv
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x4ad677
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
call dword [edx + 4]
sub eax, dword [ebx + 0x18]
sbb edx, dword [ebx + 0x1c]
jno 0x4ad5ac
call sub.rtl160.bpl__System__IntOver_qqrv
cmp edx, 0
jne 0x4ad5bc
cmp eax, 0x64
jbe 0x4ad669
jmp 0x4ad5c2
jle 0x4ad669
push 0x4ad7dc
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
cmp edx, dword [ebx + 0x1c]
jne 0x4ad5e0
cmp eax, dword [ebx + 0x18]
jbe 0x4ad609
jmp 0x4ad5e2
jle 0x4ad609
push 0x4ad804
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
jno 0x4ad601
call sub.rtl160.bpl__System__IntOver_qqrv
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
jmp 0x4ad677
push 0x4ad830
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
jno 0x4ad626
call sub.rtl160.bpl__System__IntOver_qqrv
mov dword [ebp - 8], eax
mov dword [ebp - 4], edx
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
push edx
push eax
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov dword [ebx + 0x50], eax
mov dword [ebx + 0x54], edx
push dword [ebx + 0x54]
push dword [ebx + 0x50]
lea eax, [ebp - 0x28]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
mov eax, dword [ebp - 0x28]
call sub.rtl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4ad677
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 4], 0
jne 0x4ad689
cmp dword [ebp - 8], 0
jbe 0x4ad780
jmp 0x4ad68f
jle 0x4ad780
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov ecx, dword [ebx + 0xc]
sub eax, dword [ecx + 8]
sbb edx, dword [ecx + 0xc]
jno 0x4ad6a5
call sub.rtl160.bpl__System__IntOver_qqrv
test edx, edx
jge 0x4ad6b8
xor ecx, ecx
neg eax
xchg edx, ecx
sbb edx, ecx
jno 0x4ad6b8
call sub.rtl160.bpl__System__IntOver_qqrv
cmp edx, 0
jne 0x4ad6c8
cmp eax, 0x64
jbe 0x4ad780
jmp 0x4ad6ce
jle 0x4ad780
mov eax, dword [ebp - 8]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 4]
mov dword [ebx + 0x4c], eax
push 0x4ad854
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
call dword [edx + 4]
push edx
push eax
lea eax, [ebp - 0x30]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x30]
push 0x4ad870
mov eax, dword [ebx + 0x10]
mov edx, dword [eax]
call dword [edx + 4]
push edx
push eax
lea eax, [ebp - 0x34]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x34]
push 0x4ad884
push dword [ebp - 4]
push dword [ebp - 8]
lea eax, [ebp - 0x38]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x38]
push 0x4ad870
push 0x4ad8a0
push dword [ebp - 0xc]
push dword [ebp - 0x10]
lea eax, [ebp - 0x3c]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
push dword [ebp - 0x3c]
lea eax, [ebp - 0x2c]
mov edx, 9
call sub.rtl160.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x2c]
call sub.rtl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_OutputDebugStringW
push dword [ebp - 4]
push dword [ebp - 8]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
cmp edx, 0
jne 0x4ad770
cmp eax, 0x64
jbe 0x4ad777
call sub.rtl160.bpl__System__BoundErr_qqrv
mov edx, eax
mov eax, ebx
call fcn.004ad8b4
mov dl, 1
mov eax, ebx
call fcn.004ad258
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ad7ab
lea eax, [ebp - 0x3c]
mov edx, 6
call sub.rtl160.bpl__System__UStrArrayClr_qqrpvi
ret