I will provide you disassembly from a computer game that runs in MS-DOS. The game was written in C with a Watcom compiler. Some library function calls are already identified. Explain the functions I give to you and suggest names and C-language function signatures for them, including which parameters map to which registers or stack values. Also suggest names for global values if you have enough context to do so. 

FUN_0008d9db
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0x4
MOV dword ptr [EBP + local_1c],EAX
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x33],0x0
JZ LAB_0008da02
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x33]
MOV dword ptr [EAX + 0x33],0x0
LAB_0008da02
MOV EAX,dword ptr [EBP + local_1c]
CALL FUN_0008e005
MOV EAX,dword ptr [EBP + local_1c]
CALL FUN_0008dc1d
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008da1c
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0x4
MOV dword ptr [EBP + local_1c],EAX
CMP dword ptr [EBP + local_1c],0x0
JZ LAB_0008da43
MOV EDX,FUN_0008d9db
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x3f]
CALL FUN_0008e3a7
LAB_0008da43
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008da91
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0xc
MOV dword ptr [EBP + local_24],EAX
MOV EAX,dword ptr [EBP + local_24]
MOV EAX,dword ptr [EAX + 0x37]
MOV dword ptr [EBP + local_20],EAX
CMP dword ptr [EBP + local_24],0x0
JNZ LAB_0008daba
MOV dword ptr [EBP + local_1c],0x0
JMP LAB_0008dad0
LAB_0008daba
MOV EAX,dword ptr [EBP + local_24]
CALL FUN_0008da1c
MOV EAX,dword ptr [EBP + local_24]
CALL FUN_0008da4d
MOV EAX,dword ptr [EBP + local_20]
MOV dword ptr [EBP + local_1c],EAX
LAB_0008dad0
MOV EAX,dword ptr [EBP + local_1c]
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008da4d
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0xc
MOV dword ptr [EBP + local_24],EAX
CMP dword ptr [EBP + local_24],0x0
JNZ LAB_0008da6d
MOV dword ptr [EBP + local_1c],0x0
JMP LAB_0008da84
LAB_0008da6d
MOV EAX,dword ptr [EBP + local_24]
MOV EAX,dword ptr [EAX + 0x37]
MOV dword ptr [EBP + local_20],EAX
MOV EAX,dword ptr [EBP + local_24]
CALL FUN_0008d9db
MOV EAX,dword ptr [EBP + local_20]
MOV dword ptr [EBP + local_1c],EAX
LAB_0008da84
MOV EAX,dword ptr [EBP + local_1c]
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008dadd
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0xc
MOV dword ptr [EBP + local_24],EAX
MOV EAX,dword ptr [EBP + local_24]
MOV EAX,dword ptr [EAX + 0x43]
MOV dword ptr [EBP + local_20],EAX
CMP dword ptr [EBP + local_24],0x0
JNZ LAB_0008db06
MOV dword ptr [EBP + local_1c],0x0
JMP LAB_0008db14
LAB_0008db06
MOV EAX,dword ptr [EBP + local_24]
CALL FUN_0008e005
MOV EAX,dword ptr [EBP + local_20]
MOV dword ptr [EBP + local_1c],EAX
LAB_0008db14
MOV EAX,dword ptr [EBP + local_1c]
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008dc1d
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0x8
MOV dword ptr [EBP + local_20],EAX
MOV EAX,dword ptr [EBP + local_20]
SUB EAX,0x12
MOV dword ptr [EBP + local_1c],EAX
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0xc]
ADD EAX,0x12
ADD dword ptr [DAT_001a9b38],EAX
MOV EAX,dword ptr [EBP + local_20]
CALL memory_pointer_check_and_prepare
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008dd46
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH ESI
PUSH EDI
SUB ESP,0xc
MOV dword ptr [EBP + local_20],EAX
MOV dword ptr [EBP + local_1c],EDX
MOV EAX,dword ptr [EBP + local_1c]
CALL FUN_0008e005
MOV EDX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EBP + local_20]
CALL FUN_0008e0f5
MOV EAX,dword ptr [EBP + local_1c]
MOV dword ptr [EBP + local_18],EAX
MOV EAX,dword ptr [EBP + local_18]
LEA ESP=>local_14,[EBP + -0x10]
POP EDI
POP ESI
POP ECX
POP EBX
POP EBP
RET

FUN_0008e005
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH EDX
PUSH ESI
PUSH EDI
SUB ESP,0x4
MOV dword ptr [EBP + local_1c],EAX
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x43],0x0
JZ LAB_0008e02d
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x43]
MOV EAX,dword ptr [EAX + 0x3f]
CMP EAX,dword ptr [EBP + local_1c]
JZ LAB_0008e02f
LAB_0008e02d
JMP LAB_0008e03e
LAB_0008e02f
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x43]
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x37]
MOV dword ptr [EDX + 0x3f],EAX
LAB_0008e03e
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x3b],0x0
JZ LAB_0008e056
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x3b]
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x37]
MOV dword ptr [EDX + 0x37],EAX
LAB_0008e056
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x37],0x0
JZ LAB_0008e06e
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x37]
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x3b]
MOV dword ptr [EDX + 0x3b],EAX
LAB_0008e06e
MOV EAX,dword ptr [EBP + local_1c]
MOV dword ptr [EAX + 0x37],0x0
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x37]
MOV EAX,dword ptr [EBP + local_1c]
MOV dword ptr [EAX + 0x3b],EDX
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x3b]
MOV EAX,dword ptr [EBP + local_1c]
MOV dword ptr [EAX + 0x43],EDX
LEA ESP=>local_18,[EBP + -0x14]
POP EDI
POP ESI
POP EDX
POP ECX
POP EBX
POP EBP
RET

FUN_0008e0f5
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH ESI
PUSH EDI
SUB ESP,0x8
MOV dword ptr [EBP + local_1c],EAX
MOV dword ptr [EBP + local_18],EDX
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x3f],0x0
JZ LAB_0008e121
MOV EDX,dword ptr [EBP + local_18]
MOV EAX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EAX + 0x3f]
CALL FUN_0008e09a
JMP LAB_0008e149
LAB_0008e121
MOV EAX,dword ptr [EBP + local_18]
MOV EDX,dword ptr [EBP + local_1c]
MOV dword ptr [EDX + 0x3f],EAX
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EBP + local_18]
MOV dword ptr [EDX + 0x43],EAX
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EAX + 0x3b],0x0
MOV EAX,dword ptr [EBP + local_18]
MOV EDX,dword ptr [EAX + 0x3b]
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EAX + 0x37],EDX
LAB_0008e149
LEA ESP=>local_14,[EBP + -0x10]
POP EDI
POP ESI
POP ECX
POP EBX
POP EBP
RET

FUN_0008e09a 
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH ESI
PUSH EDI
SUB ESP,0x8
MOV dword ptr [EBP + local_1c],EAX
MOV dword ptr [EBP + local_18],EDX
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x37]
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EAX + 0x37],EDX
MOV EAX,dword ptr [EBP + local_1c]
CMP dword ptr [EAX + 0x37],0x0
JZ LAB_0008e0ce
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x37]
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EDX + 0x3b],EAX
LAB_0008e0ce
MOV EAX,dword ptr [EBP + local_18]
MOV EDX,dword ptr [EBP + local_1c]
MOV dword ptr [EDX + 0x37],EAX
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EBP + local_18]
MOV dword ptr [EDX + 0x3b],EAX
MOV EAX,dword ptr [EBP + local_1c]
MOV EDX,dword ptr [EAX + 0x43]
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EAX + 0x43],EDX
LEA ESP=>local_14,[EBP + -0x10]
POP EDI
POP ESI
POP ECX
POP EBX
POP EBP
RET

FUN_0008e3a7
PUSH EBP
MOV EBP,ESP
PUSH EBX
PUSH ECX
PUSH ESI
PUSH EDI
SUB ESP,0xc
MOV dword ptr [EBP + local_20],EAX
MOV dword ptr [EBP + local_1c],EDX
LAB_0008e3ba
CMP dword ptr [EBP + local_20],0x0
JZ LAB_0008e3ee
MOV EAX,dword ptr [EBP + local_20]
MOV EAX,dword ptr [EAX + 0x37]
MOV dword ptr [EBP + local_18],EAX
MOV EAX,dword ptr [EBP + local_20]
CMP dword ptr [EAX + 0x3f],0x0
JZ LAB_0008e3e0
MOV EDX,dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EBP + local_20]
MOV EAX,dword ptr [EAX + 0x3f]
CALL FUN_0008e3a7
LAB_0008e3e0
MOV EAX,dword ptr [EBP + local_20]
CALL dword ptr [EBP + local_1c]
MOV EAX,dword ptr [EBP + local_18]
MOV dword ptr [EBP + local_20],EAX
JMP LAB_0008e3ba
LAB_0008e3ee
LEA ESP=>local_14,[EBP + -0x10]
POP EDI
POP ESI
POP ECX
POP EBX
POP EBP
RET