Function at 0x437cc0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x208
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
cmp byte [0x4b2c4f], bl
jne 0x437e28
mov eax, dword [0x4c5444]
mov ecx, 1
cmp dword [eax + 0xa4], ecx
jne 0x437d13
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4c5290]
mov byte [eax + 0xf4], cl
mov edx, dword [0x4b6028]
mov byte [edx + 0xf4], bl
jmp 0x437d26
mov eax, dword [0x4c5158]
cmp dword [eax + 0xa4], ecx
jne 0x437d26
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4b61dc]
cmp dword [eax + 0xa4], ecx
jne 0x43843b
mov ecx, dword [0x4b6024]
cmp dword [ecx + 0xa4], ebx
je 0x43843b
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a8580]
inc eax
cdq
mov ecx, 0xa
idiv ecx
mov dword [0x4a8580], edx
cmp edx, 9
ja case.default.0x437d68
jmp dword [edx*4 + 0x43844c]
mov dword [0x4a857c], 0x64
jmp case.default.0x437d68
mov dword [0x4a857c], 0xc8
jmp case.default.0x437d68
mov dword [0x4a857c], 0x12c
jmp case.default.0x437d68
mov dword [0x4a857c], 0x190
jmp case.default.0x437d68
mov dword [0x4a857c], 0x1f4
jmp case.default.0x437d68
mov dword [0x4a857c], 0x258
jmp case.default.0x437d68
mov dword [0x4a857c], 0x2bc
jmp case.default.0x437d68
mov dword [0x4a857c], 0x320
jmp case.default.0x437d68
mov dword [0x4a857c], 0x384
jmp case.default.0x437d68
mov dword [0x4a857c], 0x3e8
call fcn.00409190
mov dword [0x4b5644], ebx
call fcn.0040fd80
push ebx
call fcn.0042fe60
mov edx, dword [0x4a857c]
add esp, 4
mov dword [0x4b2934], edx
call fcn.00423cb0
mov eax, dword [0x4a85bc]
mov dword [0x4b57ac], eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00463931
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4c5440]
push edi
mov edi, 1
cmp dword [eax + 0xa4], edi
jne 0x437e4b
mov dword [eax + 0xa4], ebx
call fcn.0040c4d0
call fcn.00430130
mov eax, dword [0x4c5238]
cmp dword [eax + 0xa4], edi
jne 0x437e68
mov dword [eax + 0xa4], ebx
call fcn.0040c4d0
call fcn.00430130
mov eax, dword [0x4c5868]
cmp dword [eax + 0xa4], edi
jne 0x437e85
mov dword [eax + 0xa4], ebx
call fcn.0040c4d0
call fcn.00430130
mov ecx, dword [0x4b6334]
fld dword [ecx + 0x88]
fcomp qword [0x498018]
fnstsw ax
test ah, 5
jp 0x437ed8
fld1
fstp dword [ecx + 0x88]
mov ecx, dword [0x4b2c6c]
add dword [0x4b2c78], ecx
call fcn.0040c200
mov edx, dword [0x4b2c6c]
add dword [0x4b2c7c], edx
push ebx
mov dword [0x4b2c6c], ebx
call fcn.0040bb70
push ebx
call fcn.0042fe60
add esp, 8
mov eax, dword [0x4c5288]
cmp dword [eax + 0xa4], edi
jne 0x437f2b
mov dword [eax + 0xa4], ebx
mov dword [0x4b2c58], ebx
mov dword [0x4b2c60], ebx
mov dword [0x4b2c70], ebx
mov dword [0x4b2c80], ebx
mov dword [0x4b2c78], ebx
call fcn.0040c3e0
call fcn.004104d0
call fcn.0040c2f0
call fcn.0040c200
call fcn.0040c110
push ebx
call fcn.0042fe60
add esp, 4
mov eax, dword [0x4b5cfc]
cmp dword [eax + 0xa4], edi
jne 0x437f65
mov dword [eax + 0xa4], ebx
mov ax, word [0x4a86a8]
mov ecx, 0xffff
add ax, cx
mov word [0x4a86a8], ax
cmp ax, di
jae 0x437f60
mov edx, edi
mov word [0x4a86a8], dx
call fcn.0040f960
mov eax, dword [0x4b625c]
cmp dword [eax + 0xa4], edi
jne 0x437f98
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a87e4]
sub eax, edi
mov dword [0x4a87e4], eax
cmp eax, edi
jge 0x437f8f
mov eax, edi
mov dword [0x4a87e4], eax
push eax
call fcn.0040ec30
add esp, 4
mov eax, dword [0x4c57d4]
cmp dword [eax + 0xa4], edi
jne 0x437fd2
mov dword [eax + 0xa4], ebx
mov ax, word [0x4a86a8]
add ax, di
mov ecx, 0xa
mov word [0x4a86a8], ax
cmp cx, ax
jae 0x437fcd
mov edx, ecx
mov word [0x4a86a8], dx
call fcn.0040f960
mov eax, dword [0x4c57b4]
cmp dword [eax + 0xa4], edi
jne 0x438009
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a87e4]
add eax, edi
mov dword [0x4a87e4], eax
cmp eax, 0x46
jle 0x438000
mov eax, 0x46
mov dword [0x4a87e4], eax
push eax
call fcn.0040ec30
add esp, 4
mov eax, dword [0x4b61e0]
push esi
cmp dword [eax + 0xa4], edi
jne 0x438146
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
call esi
sub eax, dword [0x4b59b0]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
jns 0x43803d
fadd dword [0x481fd0]
fmul qword [0x49b210]
fcomp qword [0x481fe0]
fnstsw ax
test ah, 5
jp 0x438058
add dword [0x4a8e6c], edi
jmp 0x43805e
mov dword [0x4a8e6c], edi
mov ecx, dword [0x4a8e6c]
push ecx
lea edx, [ebp - 0x204]
push str.g_nSaveLevDiffCounter:_d__n
push edx
call fcn.00409550
add esp, 0xc
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [0x4b61e0]
mov dword [ecx + 0xa4], ebx
mov ecx, dword [0x4a87e4]
cmp ecx, 0x32
jg 0x4380bf
xor eax, eax
nop
cmp dword [eax*4 + 0x4b2a20], ecx
je 0x4380b7
add eax, edi
cmp eax, 0x32
jl 0x4380a0
mov eax, dword [0x4a86ac]
jmp 0x4380c6
mov dword [0x4b29f4], eax
inc eax
jmp 0x4380c1
mov eax, ecx
mov dword [0x4a86ac], eax
mov edx, dword [0x4a86a8]
add edx, 0xfffffff9
cmp dx, 3
mov dx, word [0x4a86a8]
ja 0x438103
mov ecx, eax
cmp eax, 0x32
jg 0x4380ea
mov ecx, dword [eax*4 + 0x4b2a1c]
fldz
movzx edi, dx
imul edi, edi, 0x5be
add edi, ecx
fstp dword [edi*4 + 0x4b554c]
mov edi, 1
cmp eax, 0x32
jg 0x43810f
mov eax, dword [eax*4 + 0x4b2a1c]
movzx ecx, dx
imul ecx, ecx, 0x5be
add ecx, eax
fld dword [ecx*4 + 0x4b554c]
fmul qword [0x497c58]
call fcn.00463ab0
push ebx
mov dword [0x4b2c8c], eax
call fcn.0042fe60
add esp, 4
call fcn.00423cb0
call esi
mov dword [0x4b59b0], eax
mov edx, dword [0x4c517c]
cmp dword [edx + 0xa4], edi
jne 0x438159
call fcn.00435080
mov eax, dword [0x4c5208]
cmp dword [eax + 0xa4], edi
jne 0x43816c
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4c5504]
mov esi, 0x3e8
cmp dword [eax + 0xa4], edi
jne 0x43825c
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4b55b0]
inc eax
cdq
mov ecx, 0xa
idiv ecx
mov dword [0x4b55b0], edx
cmp edx, 9
ja case.default.0x4381a1
jmp dword [edx*4 + 0x438474]
mov dword [0x4a8578], 0x64
jmp case.default.0x4381a1
mov dword [0x4a8578], 0xc8
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x12c
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x190
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x1f4
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x258
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x2bc
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x320
jmp case.default.0x4381a1
mov dword [0x4a8578], 0x384
jmp case.default.0x4381a1
mov dword [0x4a8578], esi
mov edx, dword [0x4b6024]
cmp dword [edx + 0xa4], edi
jne 0x43822f
call fcn.00409190
jmp 0x438239
call fcn.004093e0
call fcn.00423cb0
mov eax, dword [0x4a8578]
mov dword [0x4b2930], eax
mov dword [0x4b5644], ebx
call fcn.0040fd80
call fcn.0040fac0
push ebx
call fcn.0042fe60
add esp, 4
mov eax, dword [0x4c542c]
cmp dword [eax + 0xa4], edi
jne 0x438341
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a8580]
inc eax
cdq
mov ecx, 0xa
idiv ecx
mov dword [0x4a8580], edx
cmp edx, 9
ja case.default.0x43828c
jmp dword [edx*4 + 0x43849c]
mov dword [0x4a857c], 0x64
jmp case.default.0x43828c
mov dword [0x4a857c], 0xc8
jmp case.default.0x43828c
mov dword [0x4a857c], 0x12c
jmp case.default.0x43828c
mov dword [0x4a857c], 0x190
jmp case.default.0x43828c
mov dword [0x4a857c], 0x1f4
jmp case.default.0x43828c
mov dword [0x4a857c], 0x258
jmp case.default.0x43828c
mov dword [0x4a857c], 0x2bc
jmp case.default.0x43828c
mov dword [0x4a857c], 0x320
jmp case.default.0x43828c
mov dword [0x4a857c], 0x384
jmp case.default.0x43828c
mov dword [0x4a857c], esi
mov edx, dword [0x4b6024]
cmp dword [edx + 0xa4], edi
jne 0x43831a
call fcn.00409190
jmp 0x43831f
call fcn.004093e0
mov eax, dword [0x4a857c]
mov dword [0x4b2934], eax
call fcn.00423cb0
call fcn.0040fc20
push ebx
call fcn.0042fe60
add esp, 4
call fcn.0040fd80
mov eax, dword [0x4a8620]
pop esi
cmp eax, 0xffffffff
jle 0x4383b8
mov eax, dword [eax*4 + 0x4c5718]
cmp dword [eax + 0xa4], edi
jne 0x4383b8
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a861c]
mov ecx, dword [0x4a8620]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*2]
dec dword [eax*8 + 0x4b2544]
jns 0x438382
mov dword [eax*8 + 0x4b2544], ebx
mov eax, dword [eax*8 + 0x4b2544]
lea eax, [eax + eax*4]
add eax, eax
push eax
push ecx
call fcn.0040eaa0
mov eax, dword [0x4a861c]
mov edx, dword [0x4a8620]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*2 - 0xa]
mov ecx, dword [eax*8 + 0x4b2594]
push ecx
push eax
call fcn.00408de0
add esp, 0x10
mov eax, dword [0x4a8624]
cmp eax, 0xffffffff
jle 0x43843a
mov eax, dword [eax*4 + 0x4c5300]
cmp dword [eax + 0xa4], edi
jne 0x43843a
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4a861c]
mov ecx, dword [0x4a8624]
lea edx, [eax + eax*4]
lea eax, [ecx + edx*2]
add dword [eax*8 + 0x4b2544], edi
mov edx, 0xa
cmp dword [eax*8 + 0x4b2544], edx
jle 0x438404
mov dword [eax*8 + 0x4b2544], edx
mov eax, dword [eax*8 + 0x4b2544]
lea eax, [eax + eax*4]
add eax, eax
push eax
push ecx
call fcn.0040eaa0
mov eax, dword [0x4a861c]
mov edx, dword [0x4a8624]
lea ecx, [eax + eax*4]
lea eax, [edx + ecx*2 - 0xa]
mov ecx, dword [eax*8 + 0x4b2594]
push ecx
push eax
call fcn.00408de0
add esp, 0x10
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret