Function at 0x439870
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0x124
mov eax, dword [0x4bdcf8]
xor eax, esp
mov dword [esp + 0x11c], eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00470e40
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [esp + 0x24], eax
mov eax, dword [0x4c0af8]
xor ebx, ebx
cmp eax, ebx
je 0x4398bd
mov ecx, dword [eax]
mov edx, dword [ecx + 0x60]
push eax
call edx
test eax, eax
jge 0x4398bd
mov eax, dword [0x4c0af0]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x64]
push eax
call edx
test byte [0x65575c], 1
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, 1
jne 0x4398de
or dword [0x65575c], ebp
call edi
mov dword [0x655758], eax
call edi
add dword [0x65547c], ebp
mov ecx, eax
sub ecx, dword [0x655758]
mov byte [esi + 0x2bc4], bl
mov edx, dword [esi + 0x44660]
add dword [0x655480], ecx
mov dword [0x655758], eax
mov dword [esp + 0x10], ebp
mov dword [esi + 0x44680], edx
mov dword [esi + 0x43db4], ebx
mov dword [esi + 0x43db8], ebx
cmp byte [0x604106], bl
je 0x43992a
xor eax, eax
jmp 0x439db9
mov ecx, dword [0x6043c0]
call fcn.004745b0
mov ecx, dword [0x6043c0]
push ebx
push ebx
call fcn.004740f0
mov ecx, dword [0x6043c4]
push ebx
push ebx
call fcn.004740f0
mov ecx, dword [0x6043c8]
push ebx
push ebx
call fcn.004740f0
mov ecx, dword [0x6043c4]
push ebp
call fcn.00473fa0
test eax, eax
je 0x4399b5
mov ecx, dword [0x6043c4]
call fcn.00473fe0
movzx eax, byte [eax]
sub eax, ebx
je 0x4399a9
sub eax, 0xfa
je 0x439a36
sub eax, 3
jne 0x4399b5
mov ecx, dword [0x6043c4]
push 0xfd
call fcn.004742e0
mov ecx, dword [0x6043c4]
call fcn.004745b0
mov ecx, dword [0x6043c4]
push ebp
call fcn.00474260
mov eax, esi
call fcn.00405720
test eax, eax
jne 0x4399b5
cmp byte [0x4ca97c], bl
je 0x439ab5
call fcn.0046fc50
cmp dword [0x64d33c], ebx
je 0x4399e5
mov byte [0x4c7c23], bl
mov byte [0x4c7c25], bl
call fcn.0046fe20
mov dword [esi + 0x2b64], eax
cmp byte [0x64d334], bl
je 0x439aae
cmp byte [0x4c7b66], bl
je 0x439a6f
cmp byte [0x655488], bl
jne 0x439a75
push 0x1f5
mov byte [0x655488], 1
call fcn.00457ee0
add esp, 4
cmp eax, ebx
je 0x439a75
mov eax, dword [eax + 0x20]
cmp eax, ebx
je 0x439a75
push ebx
push ebx
mov ecx, eax
call fcn.00470720
jmp 0x439a75
mov ecx, dword [0x6043c4]
push ebp
call fcn.00474260
call fcn.00462d80
test eax, eax
je 0x4399b5
mov ecx, dword [0x6043c4]
push 0xfe
call fcn.004742e0
mov ecx, dword [0x6043c4]
call fcn.004745b0
jmp 0x4399b5
mov byte [0x655488], bl
mov eax, dword [esi + 0x2b64]
cmp eax, 0x20
je 0x439a8f
cmp eax, 9
je 0x439a8f
cmp eax, 0x20
jle 0x439aae
cmp eax, 0x7d
jge 0x439aae
push 0x1f6
call fcn.00457ee0
add esp, 4
cmp eax, ebx
je 0x439aae
mov ecx, dword [eax + 0x20]
cmp ecx, ebx
je 0x439aae
push ebx
push ebx
call fcn.00470720
call fcn.00473f10
jmp 0x439ac8
push 0x100
push ebx
push 0x4c7b58
call fcn.0047cbe0
add esp, 0xc
movzx eax, byte [esi + 0xaea]
dec eax
cmp eax, 6
ja case.0x439ad5.5
jmp dword [eax*4 + 0x439dd4]
mov eax, esi
call fcn.0043b880
jmp 0x439b02
mov ecx, esi
call fcn.0043a210
jmp 0x439b02
mov dword [esp + 0x10], ebp
jmp case.0x439ad5.5
call fcn.0043bfc0
jmp 0x439b02
mov eax, esi
call fcn.0043be70
mov dword [esp + 0x10], eax
cmp byte [0x4c7b75], bl
je 0x439b23
push ebx
push 0x19
call fcn.0046fdc0
add esp, 8
test eax, eax
je 0x439b23
mov byte [0x4c7c0f], bl
cmp byte [0x4c7b90], bl
jne 0x439b33
cmp byte [0x4c7c10], bl
je 0x439b3f
cmp byte [0x4c7b96], bl
jne 0x439923
push ebx
push 0xb7
call fcn.0046fdc0
add esp, 8
test eax, eax
je 0x439ba9
mov eax, dword [0x65548c]
mov ecx, eax
add eax, ebp
push ecx
mov dword [0x65548c], eax
lea eax, [esp + 0x2c]
push str.metin_d.tga
push eax
call fcn.004770e4
add esp, 0xc
cmp dword [0x65548c], 0x14
jl 0x439b81
mov dword [0x65548c], ebx
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [0x4c02d8]
call fcn.0046cd20
lea edx, [esp + 0x28]
push edx
mov edi, 0x4b406c
call fcn.00402ac0
push eax
call fcn.00438e40
add esp, 8
cmp byte [esi + 0x3847], bl
lea edi, [esi + 0x3847]
je 0x439c0c
mov eax, dword [0x6043b8]
mov ecx, dword [0x4c02d8]
push eax
push ecx
call fcn.004733b0
push 0x193219
push 0xc8ffc8
mov ebp, eax
call fcn.00470e70
push edi
push 0x1b2
push 0x1e
push ebp
call fcn.00472890
mov edx, dword [0x4c02d8]
push ebp
push edx
call fcn.00473540
push 0x323232
push 0xc8c8c8
call fcn.00470e70
add esp, 0x30
mov ebp, 1
mov eax, dword [esi + 0x43da0]
cmp eax, ebx
je 0x439c32
mov ecx, dword [0x4c8850]
push 0xa
push eax
mov eax, dword [0x4c8854]
push eax
add ecx, 0x14
xor eax, eax
call fcn.0044d040
add esp, 0xc
cmp byte [0x604117], bl
je 0x439d11
mov ecx, str.mall
call fcn.004639f0
test al, al
je 0x439c6e
movsx edx, word [0x4c02e8]
movsx eax, word [0x4c02e4]
mov ecx, dword [0x603fe0]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
jmp 0x439cb8
mov ecx, str.cartoon
call fcn.004639f0
mov dword [esp + 0x18], ebx
test al, al
je 0x439ca2
movsx edx, word [0x4c02e8]
movsx eax, word [0x4c02e4]
mov ecx, dword [0x603fdc]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
jmp 0x439cbc
movsx ecx, word [0x4c02e8]
movsx edx, word [0x4c02e4]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ebx
mov ecx, dword [esi + 0x43db8]
mov eax, dword [esi + 0x44680]
add ecx, dword [0x4c8854]
mov edx, dword [esi + 0x43db4]
add edx, dword [0x4c8850]
push eax
push ecx
mov ecx, dword [0x4c02d8]
push edx
call fcn.00469a90
mov ecx, dword [0x4c02d8]
push 0x1e
call fcn.00467780
movzx ecx, byte [0x4ca974]
movzx edx, byte [0x4bef1e]
lea eax, [esp + 0x14]
push eax
push ecx
push edx
call fcn.00467a20
jmp 0x439d64
mov ecx, dword [esi + 0x43db8]
mov eax, dword [esi + 0x44680]
add ecx, dword [0x4c8854]
mov edx, dword [esi + 0x43db4]
add edx, dword [0x4c8850]
push eax
push ecx
mov ecx, dword [0x4c02d8]
push edx
call fcn.00469a90
mov ecx, dword [0x4c02d8]
push 0x1e
call fcn.00467780
movzx eax, byte [0x4ca974]
movzx ecx, byte [0x4bef1e]
push 0x4bd5a0
push eax
push ecx
call fcn.00467b20
add esp, 0xc
cmp byte [0x4ca97c], bl
jne 0x439d78
mov dword [esi + 0x14], 0x32
jmp 0x439d93
cmp byte [esi + 0x10], bl
setne al
mov byte [esi + 0x10], al
dec al
movzx edx, al
neg edx
sbb edx, edx
and edx, 0xffffffe4
add edx, 0x28
mov dword [esi + 0x14], edx
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, dword [esp + 0x24]
mov esi, dword [esi + 0x14]
cmp eax, esi
jae 0x439da9
sub esi, eax
push esi
jmp 0x439daa
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00470e60
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x12c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004768b9
add esp, 0x124
ret