Function at 0x4371f0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x4fc00c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov edx, 0xff
push edi
mov dword [ebp - 0x210], esi
movzx eax, byte [esi + 0x18]
cmp eax, 3
ja case.default.0x437220
jmp dword [eax*4 + 0x4374cc]
movzx eax, word [esi + 0x14]
cmp ax, dx
jge 0x437250
add eax, 8
movzx ecx, ax
mov word [esi + 0x14], ax
cmp ax, dx
jg 0x437261
cmp cx, dx
jl case.default.0x437220
mov word [esi + 0x18], 1
jmp case.default.0x437220
jle 0x437248
add eax, 0xfffffff8
mov word [esi + 0x14], ax
movzx ecx, ax
cmp ax, dx
jge 0x43723f
mov word [esi + 0x14], dx
mov word [esi + 0x18], 1
jmp case.default.0x437220
inc byte [esi + 0x19]
cmp byte [esi + 0x19], 0x5a
jbe case.default.0x437220
mov byte [esi + 0x18], 2
jmp case.default.0x437220
movzx eax, word [esi + 0x14]
test ax, ax
jns 0x4372a1
add eax, 8
movzx ecx, ax
mov word [esi + 0x14], ax
test ax, ax
jg 0x4372b2
test cx, cx
jg case.default.0x437220
mov word [esi + 0x18], 3
jmp case.default.0x437220
jle 0x437299
add eax, 0xfffffff8
mov word [esi + 0x14], ax
movzx ecx, ax
test ax, ax
jns 0x437294
xor eax, eax
mov word [esi + 0x14], ax
mov word [esi + 0x18], 3
jmp case.default.0x437220
inc byte [esi + 0x19]
cmp byte [esi + 0x19], 0x3c
jbe case.default.0x437220
mov byte [esi + 0x18], 0
movzx eax, word [esi + 0x16]
cmp ax, dx
jge 0x4372e4
add eax, 4
mov word [esi + 0x16], ax
cmp ax, dx
jle 0x4372f6
jmp 0x4372f2
jle 0x4372f6
add eax, 0xfffffffc
mov word [esi + 0x16], ax
cmp ax, dx
jge 0x4372f6
mov word [esi + 0x16], dx
mov eax, dword [esi + 0x30]
cmp eax, 3
ja case.default.0x437302
jmp dword [eax*4 + 0x4374dc]
mov byte [ebp - 0x209], 0
jmp 0x437422
movss xmm1, dword [esi + 0x1c]
movss xmm2, dword [0x4f3cd0]
comiss xmm2, xmm1
jbe 0x437334
addss xmm1, dword [0x4f3bc0]
comiss xmm1, xmm2
jmp 0x437344
comiss xmm1, xmm2
jbe 0x437355
subss xmm1, dword [0x4f3bc0]
comiss xmm2, xmm1
movss dword [esi + 0x1c], xmm1
jbe 0x437355
movaps xmm1, xmm2
mov dword [esi + 0x1c], 0x3f800000
comiss xmm1, xmm2
movaps xmm0, xmm1
mulss xmm0, dword [0x4f3fa4]
cvttss2si eax, xmm0
movaps xmm0, xmm2
subss xmm0, xmm1
mov byte [esi + 0x2c], al
mulss xmm0, dword [0x4f3eb0]
movss dword [esi + 0x20], xmm0
jb case.default.0x437302
mov dword [esi + 0x30], 2
jmp case.default.0x437302
movzx eax, word [esi + 0x2e]
test ax, ax
je 0x4373a0
dec eax
mov word [esi + 0x2e], ax
jmp case.default.0x437302
mov dword [esi + 0x30], 3
jmp case.default.0x437302
movss xmm1, dword [esi + 0x1c]
xorps xmm2, xmm2
comiss xmm2, xmm1
jbe 0x4373c3
addss xmm1, dword [0x4f3bd0]
comiss xmm1, xmm2
jmp 0x4373d3
comiss xmm1, xmm2
jbe 0x4373e4
subss xmm1, dword [0x4f3bd0]
comiss xmm2, xmm1
movss dword [esi + 0x1c], xmm1
jbe 0x4373e4
xorps xmm1, xmm1
mov dword [esi + 0x1c], 0
comiss xmm2, xmm1
movaps xmm0, xmm1
mulss xmm0, dword [0x4f3fa4]
cvttss2si eax, xmm0
movss xmm0, dword [0x4f3cd0]
subss xmm0, xmm1
mov byte [esi + 0x2c], al
mulss xmm0, dword [0x4f40d8]
movss dword [esi + 0x20], xmm0
jb case.default.0x437302
mov dword [esi + 0x30], 0
mov byte [ebp - 0x209], 1
lea edi, [esi + 0xb84]
xor bl, bl
mov esi, 8
nop
mov ecx, edi
call fcn.0042b650
test al, al
movzx ebx, bl
mov eax, 1
cmovne ebx, eax
add edi, 0xd4
sub esi, eax
jne 0x437430
mov esi, dword [ebp - 0x210]
cmp byte [esi + 0x1224], 0
je 0x437467
test bl, bl
jne 0x4374b8
mov byte [esi + 0x1224], bl
cmp byte [ebp - 0x209], 0
jne 0x4374b8
push 0x200
lea eax, [ebp - 0x208]
push 0
push eax
call fcn.0047ebc0
add esp, 0xc
lea eax, [ebp - 0x208]
mov ecx, esi
push eax
call fcn.00436f20
test al, al
jne 0x4374b8
lea eax, [ebp - 0x208]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0047d312
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047d312
mov esp, ebp
pop ebp
ret